mirror of
https://github.com/weechat/weechat.git
synced 2026-07-02 15:53:12 +02:00
Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bd6455d07f | |||
| 8d3180fa78 | |||
| 519ab4e7bb | |||
| 3c36fd7412 | |||
| b62c97dbe3 | |||
| f91f92b48f | |||
| 30529057c8 | |||
| a69f356182 | |||
| 1438255a87 | |||
| d15ce789a0 | |||
| 377b6da43d | |||
| 8b1b06a407 | |||
| c09c1bf2fc | |||
| c83afb9a06 | |||
| ed9535a43f | |||
| 2148829ebe | |||
| 1ca2a00255 | |||
| c737373d17 | |||
| 30230498b2 | |||
| 35699ea802 | |||
| 5e4c165dad | |||
| 23fb6bfe88 | |||
| ec03437f9e | |||
| 564ad2d5cd | |||
| f935aa3f9f | |||
| 76a7d5d3bd | |||
| f0f77e1bd9 | |||
| 8c0a3b4d81 | |||
| a4a06f255a |
+17
-72
@@ -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
|
||||||
@@ -115,13 +115,10 @@ jobs:
|
|||||||
|
|
||||||
checks:
|
checks:
|
||||||
|
|
||||||
env:
|
|
||||||
POEXAM_VERSION: "0.0.12"
|
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- ubuntu-26.04
|
- ubuntu-24.04
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
@@ -133,20 +130,13 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
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 ruff
|
pipx install msgcheck ruff
|
||||||
|
cargo install --version 0.0.10 poexam
|
||||||
|
|
||||||
- name: Cache poexam
|
- name: Check gettext files (msgcheck)
|
||||||
id: cache-poexam
|
run: msgcheck po/*.po
|
||||||
uses: actions/cache@v6
|
|
||||||
with:
|
|
||||||
path: ~/.cargo/bin/poexam
|
|
||||||
key: poexam-${{ env.POEXAM_VERSION }}-${{ runner.os }}
|
|
||||||
|
|
||||||
- name: Install poexam
|
- name: Check gettext files (poexam)
|
||||||
if: steps.cache-poexam.outputs.cache-hit != 'true'
|
|
||||||
run: cargo install --version "$POEXAM_VERSION" poexam
|
|
||||||
|
|
||||||
- name: Check gettext files
|
|
||||||
run: poexam check --file-stats --rule-stats
|
run: poexam check --file-stats --rule-stats
|
||||||
|
|
||||||
- name: Check shell and Python scripts
|
- name: Check shell and Python scripts
|
||||||
@@ -163,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"
|
||||||
@@ -204,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:
|
||||||
|
|
||||||
@@ -215,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
|
||||||
@@ -264,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"
|
||||||
@@ -341,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:
|
||||||
@@ -366,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"
|
||||||
@@ -461,7 +404,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- ubuntu-26.04
|
- ubuntu-24.04
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
@@ -498,7 +441,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- ubuntu-26.04
|
- ubuntu-24.04
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
@@ -516,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
|
||||||
|
|||||||
@@ -573,7 +573,6 @@ users
|
|||||||
usr
|
usr
|
||||||
util
|
util
|
||||||
valer
|
valer
|
||||||
valgrind
|
|
||||||
verbose
|
verbose
|
||||||
verify
|
verify
|
||||||
versiongit
|
versiongit
|
||||||
|
|||||||
+3
-2
@@ -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 = "."
|
||||||
|
|||||||
+3
-47
@@ -6,50 +6,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
|
|
||||||
# WeeChat ChangeLog
|
# WeeChat ChangeLog
|
||||||
|
|
||||||
## Version 4.10.0 (under dev)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- core: add condition on connected relay api clients in default value of option weechat.look.hotlist_add_conditions
|
|
||||||
- core: add `/mute` in default command for key `Alt`+`=` (toggle filters)
|
|
||||||
- api: change type of parameter "pos_option_name" to "const char **" in function config_search_with_string
|
|
||||||
- relay/api: add field "last_read_line_id" in GET /api/buffers
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- core: add `/theme` command with subcommands `list`, `apply`, `reset`, `save`, `rename`, `delete`, `info`, automatic backup of current themable options before apply, and built-in "light" theme
|
|
||||||
- core: detect terminal background on first start and automatically apply the built-in "light" theme when a light terminal is detected
|
|
||||||
- core: add `themable` flag on configuration options (auto-set for color options; explicit opt-in for string options containing `${color:...}` references via the `type|themable` syntax)
|
|
||||||
- core: add option weechat.look.theme (informational, set by `/theme apply`)
|
|
||||||
- core: add option weechat.look.theme_backup (boolean, default `on`)
|
|
||||||
- api: add function `theme_register` (available to plugins and to all script languages)
|
|
||||||
- fset: add filter `t:themable` (matches every themable option regardless of type)
|
|
||||||
- relay/api: add resource `GET /api/scripts`
|
|
||||||
- relay: add option relay.network.unix_socket_permissions ([#2317](https://github.com/weechat/weechat/issues/2317))
|
|
||||||
- script: add info "script_languages"
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- core: fix option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
|
|
||||||
- core: fix buffer overflow in connection to SOCKS5 proxy ([#2325](https://github.com/weechat/weechat/issues/2325))
|
|
||||||
- api: fix infinite loop in function string_replace when the search string is empty
|
|
||||||
- irc: fix tag in message with list of names when joining a channel
|
|
||||||
- fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed
|
|
||||||
- guile, lua, perl, python, ruby, tcl: fix conversion of dates in the API functions
|
|
||||||
- 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))
|
|
||||||
- irc: fix conversion of dates in received messages
|
|
||||||
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3), [CVE-2026-53524](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53524))
|
|
||||||
- relay: limit size of received websocket frame and HTTP body to prevent memory exhaustion
|
|
||||||
- relay: limit size of partial message received while reading an HTTP request to prevent memory exhaustion
|
|
||||||
- relay: fix timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
|
|
||||||
- relay: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
|
|
||||||
- relay/api: fix memory leak in resources "handshake", "input" and "completion"
|
|
||||||
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc), [CVE-2026-53525](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53525))
|
|
||||||
- xfer: replace directory separator in remote nick by underscore in download filename to prevent writing the file outside the download directory ([#2321](https://github.com/weechat/weechat/issues/2321))
|
|
||||||
- xfer: fix out-of-bounds read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
|
|
||||||
- xfer: fix out-of-bounds write in xfer file transfer resume ([#2326](https://github.com/weechat/weechat/issues/2326))
|
|
||||||
|
|
||||||
## Version 4.9.2 (2026-06-07)
|
## Version 4.9.2 (2026-06-07)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
@@ -69,9 +25,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
|
|
||||||
- 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 option weechat.look.color_real_white not applied when color is "white" on 16+ colors terminals ([#1742](https://github.com/weechat/weechat/issues/1742))
|
||||||
- irc: fix tag in message with list of names when joining a channel
|
- irc: fix tag in message with list of names when joining a channel
|
||||||
- relay: limit size of decompressed websocket frame with permessage-deflate to prevent memory exhaustion ([GHSA-v2v4-45wm-5cr3](https://github.com/weechat/weechat/security/advisories/GHSA-v2v4-45wm-5cr3), [CVE-2026-53524](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-53524))
|
- relay: 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))
|
||||||
- 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 timing attack on password authentication ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||||
- 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))
|
- api, relay: fix timing attack on TOTP validation ([GHSA-vhv8-g2r9-cwcc](https://github.com/weechat/weechat/security/advisories/GHSA-vhv8-g2r9-cwcc))
|
||||||
|
|
||||||
## Version 4.9.0 (2026-03-29)
|
## Version 4.9.0 (2026-03-29)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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,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
@@ -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
-147
@@ -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
|
||||||
@@ -2197,152 +2197,6 @@ Um der Vordergrundfarbe des Terminals das Attribut "fett" zuzuordnen:
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Themen
|
|
||||||
|
|
||||||
A theme is a named bundle of option overrides that can be applied with
|
|
||||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
|
||||||
`"light"` theme tuned for light-background terminals and supports
|
|
||||||
user-defined themes loaded transiently from files.
|
|
||||||
|
|
||||||
[[themes_themable_options]]
|
|
||||||
==== Themable options
|
|
||||||
|
|
||||||
Themes can only set options marked as _themable_. All `*.color.*`
|
|
||||||
options are themable by default; a few string options that hold format
|
|
||||||
expressions with `+${color:...}+` references (such as
|
|
||||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
|
||||||
`+buflist.format.*+` formats) are explicitly opted in.
|
|
||||||
|
|
||||||
You can list the full themable surface area from the
|
|
||||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
|
||||||
|
|
||||||
[[themes_apply]]
|
|
||||||
==== Applying a theme
|
|
||||||
|
|
||||||
To switch to the built-in light-background theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply light
|
|
||||||
----
|
|
||||||
|
|
||||||
The current state of every themable option is saved beforehand to a
|
|
||||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
|
||||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
|
||||||
previous look can be restored at any time with:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
----
|
|
||||||
|
|
||||||
Backup creation can be disabled (not recommended):
|
|
||||||
|
|
||||||
----
|
|
||||||
/set weechat.look.theme_backup off
|
|
||||||
----
|
|
||||||
|
|
||||||
If backup is enabled and the backup file cannot be written, the apply
|
|
||||||
is aborted before any option is changed.
|
|
||||||
|
|
||||||
The name of the last applied theme is stored in
|
|
||||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
|
||||||
|
|
||||||
[[themes_reset]]
|
|
||||||
==== Resetting to defaults
|
|
||||||
|
|
||||||
To restore the look shipped with WeeChat, reset every themable option
|
|
||||||
to its default value:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme reset
|
|
||||||
----
|
|
||||||
|
|
||||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
|
||||||
failure the reset is aborted before any option is changed.
|
|
||||||
`+weechat.look.theme+` is cleared too.
|
|
||||||
|
|
||||||
[[themes_save_delete]]
|
|
||||||
==== Saving and deleting user themes
|
|
||||||
|
|
||||||
Save the current themable options as a new user theme file:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme save mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Every themable option is written, so the file is self-contained and
|
|
||||||
applies the exact same look on any WeeChat, regardless of its current
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
Reserved names (built-in theme names like `+light+` and any name
|
|
||||||
starting with `+backup-+`) are refused. Files live at
|
|
||||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
|
||||||
|
|
||||||
Rename a user theme (typical use: keep a useful automatic backup
|
|
||||||
under a meaningful name):
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme rename backup-20260525-094210-123456 mybackup
|
|
||||||
----
|
|
||||||
|
|
||||||
Built-in themes have no file and cannot be renamed; the target name
|
|
||||||
cannot match a built-in name or start with `+backup-+`, and the
|
|
||||||
target file must not already exist. The `+[info]+` `+name+` field
|
|
||||||
inside the file is rewritten so `/theme info` reports the new name
|
|
||||||
consistently.
|
|
||||||
|
|
||||||
Delete a user theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme delete mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
This removes the file on disk; built-in themes cannot be deleted.
|
|
||||||
|
|
||||||
[[themes_file_format]]
|
|
||||||
==== Theme file format
|
|
||||||
|
|
||||||
A theme file is INI-like with two sections:
|
|
||||||
|
|
||||||
----
|
|
||||||
[info]
|
|
||||||
name = "solarized_light"
|
|
||||||
description = "Light-background theme inspired by Solarized"
|
|
||||||
date = "2026-05-25 09:42:10"
|
|
||||||
weechat = "4.10.0-dev"
|
|
||||||
|
|
||||||
[options]
|
|
||||||
weechat.color.chat = "darkgray"
|
|
||||||
weechat.color.separator = "blue"
|
|
||||||
irc.color.input_nick = "magenta"
|
|
||||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
|
||||||
----
|
|
||||||
|
|
||||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
|
||||||
holds the actual overrides; keys are the full option names that would
|
|
||||||
appear in `/set`. String values can be enclosed in double or single
|
|
||||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
|
||||||
in a theme file are refused at apply time and logged to the core
|
|
||||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
|
||||||
overwrite passwords, autoload lists, or startup commands).
|
|
||||||
|
|
||||||
User theme files are never cached: on every `/theme apply <name>` the
|
|
||||||
file is parsed, applied, and freed.
|
|
||||||
|
|
||||||
[[themes_resolution]]
|
|
||||||
==== Resolution order
|
|
||||||
|
|
||||||
When `+/theme apply <name>+` is run:
|
|
||||||
|
|
||||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
|
||||||
is parsed and used (it shadows any built-in with the same name).
|
|
||||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
|
||||||
registered programmatically by core, plugins and scripts (see the
|
|
||||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
|
||||||
|
|
||||||
If neither source provides the name, the apply is refused.
|
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
@@ -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,
|
||||||
@@ -9627,89 +9627,6 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
[[themes]]
|
|
||||||
=== Themes
|
|
||||||
|
|
||||||
Functions to contribute color (and other themable option) overrides to
|
|
||||||
built-in themes. See the
|
|
||||||
link:weechat_user.en.html#themes[user's guide / Themes] section for the
|
|
||||||
end-user side and the `+/theme+` command.
|
|
||||||
|
|
||||||
==== theme_register
|
|
||||||
|
|
||||||
_WeeChat ≥ 4.10.0._
|
|
||||||
|
|
||||||
Register a contribution of option overrides under a named theme. The
|
|
||||||
caller's plugin is the owner of the contribution; subsequent calls
|
|
||||||
with the same theme name from the same plugin merge into the existing
|
|
||||||
contribution (later keys win for duplicates).
|
|
||||||
|
|
||||||
When the calling plugin is unloaded, all its contributions are
|
|
||||||
automatically dropped from every theme.
|
|
||||||
|
|
||||||
Prototype:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_theme *weechat_theme_register (const char *name,
|
|
||||||
struct t_hashtable *overrides);
|
|
||||||
----
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
* _name_: theme name (for example `+light+` or a custom name)
|
|
||||||
* _overrides_: hashtable mapping full option names
|
|
||||||
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
|
||||||
retains ownership and may free the hashtable right after the call
|
|
||||||
|
|
||||||
Return value:
|
|
||||||
|
|
||||||
* pointer to the registered theme (existing or newly created), NULL on
|
|
||||||
error
|
|
||||||
|
|
||||||
C example:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
|
||||||
8,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (overrides)
|
|
||||||
{
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
|
||||||
weechat_theme_register ("light", overrides);
|
|
||||||
weechat_hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
Script (Python):
|
|
||||||
|
|
||||||
[source,python]
|
|
||||||
----
|
|
||||||
# prototype
|
|
||||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
|
||||||
|
|
||||||
# example
|
|
||||||
weechat.theme_register("light", {
|
|
||||||
"irc.color.input_nick": "cyan",
|
|
||||||
"irc.color.topic_old": "darkgray",
|
|
||||||
})
|
|
||||||
----
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
Only options that have the _themable_ flag will be set by `/theme apply`.
|
|
||||||
All `*.color.*` options are themable by default; string options that
|
|
||||||
hold `+${color:...}+` references are explicitly opted in. Entries
|
|
||||||
targeting non-themable options are silently skipped at apply-time with
|
|
||||||
a warning logged to the _core_ buffer.
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
When called from a script, the contribution is automatically dropped
|
|
||||||
when the script unloads (no manual cleanup is needed).
|
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== Key bindings
|
=== Key bindings
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -1034,13 +1028,6 @@ Path parameters:
|
|||||||
confused with the buffer number, which is different)
|
confused with the buffer number, which is different)
|
||||||
* `buffer_name` (string, **required**): buffer name
|
* `buffer_name` (string, **required**): buffer name
|
||||||
|
|
||||||
Query parameters:
|
|
||||||
|
|
||||||
* `colors` (string, optional, default: `ansi`): how to return strings with color codes:
|
|
||||||
** `ansi`: return ANSI color codes
|
|
||||||
** `weechat`: return WeeChat internal color codes
|
|
||||||
** `strip`: strip colors
|
|
||||||
|
|
||||||
Request example: get nicks of a buffer:
|
Request example: get nicks of a buffer:
|
||||||
|
|
||||||
[source,shell]
|
[source,shell]
|
||||||
@@ -1186,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
|
||||||
|
|
||||||
@@ -1562,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
-146
@@ -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
|
||||||
@@ -2185,151 +2185,6 @@ Example of bold with terminal foreground color:
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
[[themes]]
|
|
||||||
=== Themes
|
|
||||||
|
|
||||||
A theme is a named bundle of option overrides that can be applied with
|
|
||||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
|
||||||
`"light"` theme tuned for light-background terminals and supports
|
|
||||||
user-defined themes loaded transiently from files.
|
|
||||||
|
|
||||||
[[themes_themable_options]]
|
|
||||||
==== Themable options
|
|
||||||
|
|
||||||
Themes can only set options marked as _themable_. All `*.color.*`
|
|
||||||
options are themable by default; a few string options that hold format
|
|
||||||
expressions with `+${color:...}+` references (such as
|
|
||||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
|
||||||
`+buflist.format.*+` formats) are explicitly opted in.
|
|
||||||
|
|
||||||
You can list the full themable surface area from the
|
|
||||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
|
||||||
|
|
||||||
[[themes_apply]]
|
|
||||||
==== Applying a theme
|
|
||||||
|
|
||||||
To switch to the built-in light-background theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply light
|
|
||||||
----
|
|
||||||
|
|
||||||
The current state of every themable option is saved beforehand to a
|
|
||||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
|
||||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
|
||||||
previous look can be restored at any time with:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
----
|
|
||||||
|
|
||||||
Backup creation can be disabled (not recommended):
|
|
||||||
|
|
||||||
----
|
|
||||||
/set weechat.look.theme_backup off
|
|
||||||
----
|
|
||||||
|
|
||||||
If backup is enabled and the backup file cannot be written, the apply
|
|
||||||
is aborted before any option is changed.
|
|
||||||
|
|
||||||
The name of the last applied theme is stored in
|
|
||||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
|
||||||
|
|
||||||
[[themes_reset]]
|
|
||||||
==== Resetting to defaults
|
|
||||||
|
|
||||||
To restore the look shipped with WeeChat, reset every themable option
|
|
||||||
to its default value:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme reset
|
|
||||||
----
|
|
||||||
|
|
||||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
|
||||||
failure the reset is aborted before any option is changed.
|
|
||||||
`+weechat.look.theme+` is cleared too.
|
|
||||||
|
|
||||||
[[themes_save_delete]]
|
|
||||||
==== Saving and deleting user themes
|
|
||||||
|
|
||||||
Save the current themable options as a new user theme file:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme save mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Every themable option is written, so the file is self-contained and
|
|
||||||
applies the exact same look on any WeeChat, regardless of its current
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
Reserved names (built-in theme names like `+light+` and any name
|
|
||||||
starting with `+backup-+`) are refused. Files live at
|
|
||||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
|
||||||
|
|
||||||
Rename a user theme (typical use: keep a useful automatic backup
|
|
||||||
under a meaningful name):
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme rename backup-20260525-094210-123456 mybackup
|
|
||||||
----
|
|
||||||
|
|
||||||
Built-in themes have no file and cannot be renamed; the target name
|
|
||||||
cannot match a built-in name or start with `+backup-+`, and the
|
|
||||||
target file must not already exist. The `+[info]+` `+name+` field
|
|
||||||
inside the file is rewritten so `/theme info` reports the new name
|
|
||||||
consistently.
|
|
||||||
|
|
||||||
Delete a user theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme delete mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
This removes the file on disk; built-in themes cannot be deleted.
|
|
||||||
|
|
||||||
[[themes_file_format]]
|
|
||||||
==== Theme file format
|
|
||||||
|
|
||||||
A theme file is INI-like with two sections:
|
|
||||||
|
|
||||||
----
|
|
||||||
[info]
|
|
||||||
name = "solarized_light"
|
|
||||||
description = "Light-background theme inspired by Solarized"
|
|
||||||
date = "2026-05-25 09:42:10"
|
|
||||||
weechat = "4.10.0-dev"
|
|
||||||
|
|
||||||
[options]
|
|
||||||
weechat.color.chat = "darkgray"
|
|
||||||
weechat.color.separator = "blue"
|
|
||||||
irc.color.input_nick = "magenta"
|
|
||||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
|
||||||
----
|
|
||||||
|
|
||||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
|
||||||
holds the actual overrides; keys are the full option names that would
|
|
||||||
appear in `/set`. String values can be enclosed in double or single
|
|
||||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
|
||||||
in a theme file are refused at apply time and logged to the core
|
|
||||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
|
||||||
overwrite passwords, autoload lists, or startup commands).
|
|
||||||
|
|
||||||
User theme files are never cached: on every `/theme apply <name>` the
|
|
||||||
file is parsed, applied, and freed.
|
|
||||||
|
|
||||||
[[themes_resolution]]
|
|
||||||
==== Resolution order
|
|
||||||
|
|
||||||
When `+/theme apply <name>+` is run:
|
|
||||||
|
|
||||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
|
||||||
is parsed and used (it shadows any built-in with the same name).
|
|
||||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
|
||||||
registered programmatically by core, plugins and scripts (see the
|
|
||||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
|
||||||
|
|
||||||
If neither source provides the name, the apply is refused.
|
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -9771,95 +9771,6 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
[[themes]]
|
|
||||||
=== Thèmes
|
|
||||||
|
|
||||||
Fonctions permettant de contribuer des surcharges d'options de couleur
|
|
||||||
(et autres options modifiables par un thème) à des thèmes intégrés.
|
|
||||||
Voir la section
|
|
||||||
link:weechat_user.fr.html#themes[guide utilisateur / Thèmes] pour le
|
|
||||||
côté utilisateur final et la commande `+/theme+`.
|
|
||||||
|
|
||||||
==== theme_register
|
|
||||||
|
|
||||||
_WeeChat ≥ 4.10.0._
|
|
||||||
|
|
||||||
Enregistrer une contribution de surcharges d'options sous un thème
|
|
||||||
nommé. L'extension appelante est le propriétaire de la contribution ;
|
|
||||||
les appels suivants avec le même nom de thème depuis la même extension
|
|
||||||
sont fusionnés dans la contribution existante (en cas de doublons, les
|
|
||||||
dernières clés gagnent).
|
|
||||||
|
|
||||||
Lorsque l'extension appelante est déchargée, toutes ses contributions
|
|
||||||
sont automatiquement retirées de tous les thèmes.
|
|
||||||
|
|
||||||
Prototype :
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_theme *weechat_theme_register (const char *name,
|
|
||||||
struct t_hashtable *overrides);
|
|
||||||
----
|
|
||||||
|
|
||||||
Paramètres :
|
|
||||||
|
|
||||||
* _name_ : nom du thème (par exemple `+light+` ou un nom personnalisé)
|
|
||||||
* _overrides_ : table de hachage associant des noms d'options complets
|
|
||||||
(par exemple `+irc.color.input_nick+`) à leurs valeurs chaîne ;
|
|
||||||
l'appelant en conserve la propriété et peut la libérer juste après
|
|
||||||
l'appel
|
|
||||||
|
|
||||||
Valeur de retour :
|
|
||||||
|
|
||||||
* pointeur vers le thème enregistré (existant ou nouvellement créé),
|
|
||||||
NULL en cas d'erreur
|
|
||||||
|
|
||||||
Exemple en C :
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
|
||||||
8,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (overrides)
|
|
||||||
{
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
|
||||||
weechat_theme_register ("light", overrides);
|
|
||||||
weechat_hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
Script (Python) :
|
|
||||||
|
|
||||||
[source,python]
|
|
||||||
----
|
|
||||||
# prototype
|
|
||||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
|
||||||
|
|
||||||
# exemple
|
|
||||||
weechat.theme_register("light", {
|
|
||||||
"irc.color.input_nick": "cyan",
|
|
||||||
"irc.color.topic_old": "darkgray",
|
|
||||||
})
|
|
||||||
----
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
Seules les options possédant le flag _themable_ seront modifiées par
|
|
||||||
`/theme apply`. Toutes les options `*.color.*` sont modifiables par
|
|
||||||
défaut ; les options de type chaîne contenant des références
|
|
||||||
`+${color:...}+` sont explicitement déclarées comme modifiables. Les
|
|
||||||
entrées ciblant des options non modifiables sont silencieusement
|
|
||||||
ignorées au moment de l'application avec un avertissement écrit sur
|
|
||||||
le tampon _core_.
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
Lorsqu'elle est appelée depuis un script, la contribution est
|
|
||||||
automatiquement retirée lorsque le script est déchargé (aucun nettoyage
|
|
||||||
manuel n'est nécessaire).
|
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== Associations de touches
|
=== Associations de touches
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -1046,14 +1040,6 @@ Paramètres de chemin :
|
|||||||
confondre avec le numéro du tampon, qui est différent)
|
confondre avec le numéro du tampon, qui est différent)
|
||||||
* `buffer_name` (chaîne, **obligatoire**) : nom du tampon
|
* `buffer_name` (chaîne, **obligatoire**) : nom du tampon
|
||||||
|
|
||||||
Paramètres de requête :
|
|
||||||
|
|
||||||
* `colors` (chaîne, facultatif, par défaut : `ansi`) : comment les chaînes avec
|
|
||||||
des couleurs sont retournées :
|
|
||||||
** `ansi` : retourner les codes couleur ANSI
|
|
||||||
** `weechat` : retourner les codes couleur internes WeeChat
|
|
||||||
** `strip` : supprimer les couleurs
|
|
||||||
|
|
||||||
Exemple de requête : obtenir les pseudos d'un tampon :
|
Exemple de requête : obtenir les pseudos d'un tampon :
|
||||||
|
|
||||||
[source,shell]
|
[source,shell]
|
||||||
@@ -1199,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
|
||||||
|
|
||||||
@@ -1583,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
-161
@@ -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
|
||||||
@@ -2227,166 +2227,6 @@ Exemple de gras avec la couleur de texte du terminal :
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
[[themes]]
|
|
||||||
=== Thèmes
|
|
||||||
|
|
||||||
Un thème est un ensemble nommé de surcharges d'options qui peut être
|
|
||||||
appliqué par la commande <<command_weechat_theme,/theme>>. WeeChat est
|
|
||||||
livré avec un thème intégré `"light"` adapté aux terminaux à fond clair
|
|
||||||
et permet de charger temporairement des thèmes utilisateur depuis des
|
|
||||||
fichiers.
|
|
||||||
|
|
||||||
[[themes_themable_options]]
|
|
||||||
==== Options modifiables par un thème
|
|
||||||
|
|
||||||
Les thèmes ne peuvent modifier que les options marquées comme
|
|
||||||
_themable_ (modifiables par un thème). Toutes les options `*.color.*`
|
|
||||||
le sont par défaut ; certaines options de type chaîne contenant des
|
|
||||||
références `+${color:...}+` (par exemple
|
|
||||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` ou les
|
|
||||||
formats `+buflist.format.*+`) sont explicitement déclarées comme
|
|
||||||
modifiables.
|
|
||||||
|
|
||||||
La liste complète des options modifiables peut être affichée depuis le
|
|
||||||
tampon <<command_fset_fset,/fset>> avec le filtre `+t:themable+`.
|
|
||||||
|
|
||||||
[[themes_apply]]
|
|
||||||
==== Appliquer un thème
|
|
||||||
|
|
||||||
Pour basculer vers le thème intégré pour fond clair :
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply light
|
|
||||||
----
|
|
||||||
|
|
||||||
L'état actuel de toutes les options modifiables est sauvegardé au
|
|
||||||
préalable dans un fichier de sauvegarde nommé
|
|
||||||
`+backup-AAAAMMJJ-HHMMSS-uuuuuu+` dans le répertoire `+themes+` du
|
|
||||||
répertoire de configuration de WeeChat. L'apparence précédente peut
|
|
||||||
ainsi être restaurée à tout moment avec :
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply backup-AAAAMMJJ-HHMMSS-uuuuuu
|
|
||||||
----
|
|
||||||
|
|
||||||
La création de la sauvegarde peut être désactivée (déconseillé) :
|
|
||||||
|
|
||||||
----
|
|
||||||
/set weechat.look.theme_backup off
|
|
||||||
----
|
|
||||||
|
|
||||||
Si la sauvegarde est activée et que le fichier ne peut pas être écrit,
|
|
||||||
l'application est annulée avant qu'aucune option ne soit modifiée.
|
|
||||||
|
|
||||||
Le nom du dernier thème appliqué est conservé dans
|
|
||||||
`+weechat.look.theme+` (à titre informatif uniquement ; il n'est pas
|
|
||||||
ré-appliqué au démarrage).
|
|
||||||
|
|
||||||
[[themes_reset]]
|
|
||||||
==== Réinitialiser aux valeurs par défaut
|
|
||||||
|
|
||||||
Pour rétablir l'apparence d'origine livrée avec WeeChat, réinitialiser
|
|
||||||
toutes les options modifiables à leur valeur par défaut :
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme reset
|
|
||||||
----
|
|
||||||
|
|
||||||
Une sauvegarde est écrite au préalable (même garde-fou que
|
|
||||||
`+/theme apply+`) ; si la sauvegarde échoue, la réinitialisation est
|
|
||||||
annulée avant qu'aucune option ne soit modifiée. L'option
|
|
||||||
`+weechat.look.theme+` est également remise à vide.
|
|
||||||
|
|
||||||
[[themes_save_delete]]
|
|
||||||
==== Sauvegarder et supprimer des thèmes utilisateur
|
|
||||||
|
|
||||||
Sauvegarder l'état actuel des options modifiables en tant que nouveau
|
|
||||||
thème utilisateur :
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme save monTheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Toutes les options modifiables sont écrites, donc le fichier est
|
|
||||||
autonome et applique exactement le même aspect sur n'importe quel
|
|
||||||
WeeChat, quelle que soit sa configuration actuelle.
|
|
||||||
|
|
||||||
Les noms réservés (noms de thèmes intégrés comme `+light+` et tout nom
|
|
||||||
commençant par `+backup-+`) sont refusés. Les fichiers sont placés
|
|
||||||
dans `+${weechat_config_dir}/themes/<nom>.theme+`.
|
|
||||||
|
|
||||||
Renommer un thème utilisateur (usage typique : conserver une
|
|
||||||
sauvegarde automatique utile sous un nom plus parlant) :
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme rename backup-20260525-094210-123456 maSauvegarde
|
|
||||||
----
|
|
||||||
|
|
||||||
Les thèmes intégrés n'ont pas de fichier et ne peuvent pas être
|
|
||||||
renommés ; le nom cible ne peut pas correspondre à un nom intégré ni
|
|
||||||
commencer par `+backup-+`, et le fichier cible ne doit pas déjà
|
|
||||||
exister. Le champ `+name+` de la section `+[info]+` à l'intérieur du
|
|
||||||
fichier est réécrit afin que `/theme info` affiche le nouveau nom de
|
|
||||||
manière cohérente.
|
|
||||||
|
|
||||||
Supprimer un thème utilisateur :
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme delete monTheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Cela supprime le fichier sur le disque ; les thèmes intégrés ne
|
|
||||||
peuvent pas être supprimés.
|
|
||||||
|
|
||||||
[[themes_file_format]]
|
|
||||||
==== Format du fichier de thème
|
|
||||||
|
|
||||||
Un fichier de thème est de type INI avec deux sections :
|
|
||||||
|
|
||||||
----
|
|
||||||
[info]
|
|
||||||
name = "solarized_light"
|
|
||||||
description = "Thème fond clair inspiré de Solarized"
|
|
||||||
date = "2026-05-25 09:42:10"
|
|
||||||
weechat = "4.10.0-dev"
|
|
||||||
|
|
||||||
[options]
|
|
||||||
weechat.color.chat = "darkgray"
|
|
||||||
weechat.color.separator = "blue"
|
|
||||||
irc.color.input_nick = "magenta"
|
|
||||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
|
||||||
----
|
|
||||||
|
|
||||||
`+[info]+` est une section de métadonnées informatives affichées par
|
|
||||||
`/theme info`. `+[options]+` contient les surcharges réelles ; les clés
|
|
||||||
sont les noms complets d'options tels qu'affichés par `/set`. Les
|
|
||||||
valeurs de type chaîne peuvent être encadrées par des guillemets
|
|
||||||
simples ou doubles ; les guillemets sont retirés à l'analyse. Les
|
|
||||||
options non modifiables par un thème listées dans un fichier sont
|
|
||||||
refusées au moment de l'application et signalées sur le tampon _core_
|
|
||||||
(ainsi, un fichier `.theme` importé depuis une source non fiable ne
|
|
||||||
peut pas écraser des mots de passe, des listes d'auto-chargement ou
|
|
||||||
des commandes de démarrage).
|
|
||||||
|
|
||||||
Les fichiers de thème utilisateur ne sont jamais mis en cache : à
|
|
||||||
chaque `/theme apply <nom>`, le fichier est analysé, appliqué, puis
|
|
||||||
libéré.
|
|
||||||
|
|
||||||
[[themes_resolution]]
|
|
||||||
==== Ordre de résolution
|
|
||||||
|
|
||||||
Lors de l'exécution de `+/theme apply <nom>+` :
|
|
||||||
|
|
||||||
* Si `+${weechat_config_dir}/themes/<nom>.theme+` existe, le fichier
|
|
||||||
est analysé et utilisé (il masque tout thème intégré du même nom).
|
|
||||||
* Sinon, le registre des thèmes intégrés est consulté ; les thèmes
|
|
||||||
intégrés sont enregistrés par programmation par le cœur, les
|
|
||||||
extensions et les scripts (voir la documentation des extensions et
|
|
||||||
des scripts pour `+weechat_theme_register+`).
|
|
||||||
|
|
||||||
Si aucune des deux sources ne fournit le nom, l'application est
|
|
||||||
refusée.
|
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -9967,90 +9967,6 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Themes
|
|
||||||
|
|
||||||
Functions to contribute color (and other themable option) overrides to
|
|
||||||
built-in themes. See the
|
|
||||||
link:weechat_user.it.html#themes[user's guide / Themes] section for the
|
|
||||||
end-user side and the `+/theme+` command.
|
|
||||||
|
|
||||||
==== theme_register
|
|
||||||
|
|
||||||
_WeeChat ≥ 4.10.0._
|
|
||||||
|
|
||||||
Register a contribution of option overrides under a named theme. The
|
|
||||||
caller's plugin is the owner of the contribution; subsequent calls
|
|
||||||
with the same theme name from the same plugin merge into the existing
|
|
||||||
contribution (later keys win for duplicates).
|
|
||||||
|
|
||||||
When the calling plugin is unloaded, all its contributions are
|
|
||||||
automatically dropped from every theme.
|
|
||||||
|
|
||||||
Prototype:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_theme *weechat_theme_register (const char *name,
|
|
||||||
struct t_hashtable *overrides);
|
|
||||||
----
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
* _name_: theme name (for example `+light+` or a custom name)
|
|
||||||
* _overrides_: hashtable mapping full option names
|
|
||||||
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
|
||||||
retains ownership and may free the hashtable right after the call
|
|
||||||
|
|
||||||
Return value:
|
|
||||||
|
|
||||||
* pointer to the registered theme (existing or newly created), NULL on
|
|
||||||
error
|
|
||||||
|
|
||||||
C example:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
|
||||||
8,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (overrides)
|
|
||||||
{
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
|
||||||
weechat_theme_register ("light", overrides);
|
|
||||||
weechat_hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
Script (Python):
|
|
||||||
|
|
||||||
[source,python]
|
|
||||||
----
|
|
||||||
# prototype
|
|
||||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
|
||||||
|
|
||||||
# example
|
|
||||||
weechat.theme_register("light", {
|
|
||||||
"irc.color.input_nick": "cyan",
|
|
||||||
"irc.color.topic_old": "darkgray",
|
|
||||||
})
|
|
||||||
----
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
Only options that have the _themable_ flag will be set by `/theme apply`.
|
|
||||||
All `*.color.*` options are themable by default; string options that
|
|
||||||
hold `+${color:...}+` references are explicitly opted in. Entries
|
|
||||||
targeting non-themable options are silently skipped at apply-time with
|
|
||||||
a warning logged to the _core_ buffer.
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
When called from a script, the contribution is automatically dropped
|
|
||||||
when the script unloads (no manual cleanup is needed).
|
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== Combinazione tasti
|
=== Combinazione tasti
|
||||||
|
|
||||||
|
|||||||
+1
-147
@@ -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
|
||||||
@@ -2439,152 +2439,6 @@ Esempio di grassetto con il colore di primo piano del terminale:
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Themes
|
|
||||||
|
|
||||||
A theme is a named bundle of option overrides that can be applied with
|
|
||||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
|
||||||
`"light"` theme tuned for light-background terminals and supports
|
|
||||||
user-defined themes loaded transiently from files.
|
|
||||||
|
|
||||||
[[themes_themable_options]]
|
|
||||||
==== Themable options
|
|
||||||
|
|
||||||
Themes can only set options marked as _themable_. All `*.color.*`
|
|
||||||
options are themable by default; a few string options that hold format
|
|
||||||
expressions with `+${color:...}+` references (such as
|
|
||||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
|
||||||
`+buflist.format.*+` formats) are explicitly opted in.
|
|
||||||
|
|
||||||
You can list the full themable surface area from the
|
|
||||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
|
||||||
|
|
||||||
[[themes_apply]]
|
|
||||||
==== Applying a theme
|
|
||||||
|
|
||||||
To switch to the built-in light-background theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply light
|
|
||||||
----
|
|
||||||
|
|
||||||
The current state of every themable option is saved beforehand to a
|
|
||||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
|
||||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
|
||||||
previous look can be restored at any time with:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
----
|
|
||||||
|
|
||||||
Backup creation can be disabled (not recommended):
|
|
||||||
|
|
||||||
----
|
|
||||||
/set weechat.look.theme_backup off
|
|
||||||
----
|
|
||||||
|
|
||||||
If backup is enabled and the backup file cannot be written, the apply
|
|
||||||
is aborted before any option is changed.
|
|
||||||
|
|
||||||
The name of the last applied theme is stored in
|
|
||||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
|
||||||
|
|
||||||
[[themes_reset]]
|
|
||||||
==== Resetting to defaults
|
|
||||||
|
|
||||||
To restore the look shipped with WeeChat, reset every themable option
|
|
||||||
to its default value:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme reset
|
|
||||||
----
|
|
||||||
|
|
||||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
|
||||||
failure the reset is aborted before any option is changed.
|
|
||||||
`+weechat.look.theme+` is cleared too.
|
|
||||||
|
|
||||||
[[themes_save_delete]]
|
|
||||||
==== Saving and deleting user themes
|
|
||||||
|
|
||||||
Save the current themable options as a new user theme file:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme save mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Every themable option is written, so the file is self-contained and
|
|
||||||
applies the exact same look on any WeeChat, regardless of its current
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
Reserved names (built-in theme names like `+light+` and any name
|
|
||||||
starting with `+backup-+`) are refused. Files live at
|
|
||||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
|
||||||
|
|
||||||
Rename a user theme (typical use: keep a useful automatic backup
|
|
||||||
under a meaningful name):
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme rename backup-20260525-094210-123456 mybackup
|
|
||||||
----
|
|
||||||
|
|
||||||
Built-in themes have no file and cannot be renamed; the target name
|
|
||||||
cannot match a built-in name or start with `+backup-+`, and the
|
|
||||||
target file must not already exist. The `+[info]+` `+name+` field
|
|
||||||
inside the file is rewritten so `/theme info` reports the new name
|
|
||||||
consistently.
|
|
||||||
|
|
||||||
Delete a user theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme delete mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
This removes the file on disk; built-in themes cannot be deleted.
|
|
||||||
|
|
||||||
[[themes_file_format]]
|
|
||||||
==== Theme file format
|
|
||||||
|
|
||||||
A theme file is INI-like with two sections:
|
|
||||||
|
|
||||||
----
|
|
||||||
[info]
|
|
||||||
name = "solarized_light"
|
|
||||||
description = "Light-background theme inspired by Solarized"
|
|
||||||
date = "2026-05-25 09:42:10"
|
|
||||||
weechat = "4.10.0-dev"
|
|
||||||
|
|
||||||
[options]
|
|
||||||
weechat.color.chat = "darkgray"
|
|
||||||
weechat.color.separator = "blue"
|
|
||||||
irc.color.input_nick = "magenta"
|
|
||||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
|
||||||
----
|
|
||||||
|
|
||||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
|
||||||
holds the actual overrides; keys are the full option names that would
|
|
||||||
appear in `/set`. String values can be enclosed in double or single
|
|
||||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
|
||||||
in a theme file are refused at apply time and logged to the core
|
|
||||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
|
||||||
overwrite passwords, autoload lists, or startup commands).
|
|
||||||
|
|
||||||
User theme files are never cached: on every `/theme apply <name>` the
|
|
||||||
file is parsed, applied, and freed.
|
|
||||||
|
|
||||||
[[themes_resolution]]
|
|
||||||
==== Resolution order
|
|
||||||
|
|
||||||
When `+/theme apply <name>+` is run:
|
|
||||||
|
|
||||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
|
||||||
is parsed and used (it shadows any built-in with the same name).
|
|
||||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
|
||||||
registered programmatically by core, plugins and scripts (see the
|
|
||||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
|
||||||
|
|
||||||
If neither source provides the name, the apply is refused.
|
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -9746,90 +9746,6 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Themes
|
|
||||||
|
|
||||||
Functions to contribute color (and other themable option) overrides to
|
|
||||||
built-in themes. See the
|
|
||||||
link:weechat_user.ja.html#themes[user's guide / Themes] section for the
|
|
||||||
end-user side and the `+/theme+` command.
|
|
||||||
|
|
||||||
==== theme_register
|
|
||||||
|
|
||||||
_WeeChat ≥ 4.10.0._
|
|
||||||
|
|
||||||
Register a contribution of option overrides under a named theme. The
|
|
||||||
caller's plugin is the owner of the contribution; subsequent calls
|
|
||||||
with the same theme name from the same plugin merge into the existing
|
|
||||||
contribution (later keys win for duplicates).
|
|
||||||
|
|
||||||
When the calling plugin is unloaded, all its contributions are
|
|
||||||
automatically dropped from every theme.
|
|
||||||
|
|
||||||
Prototype:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_theme *weechat_theme_register (const char *name,
|
|
||||||
struct t_hashtable *overrides);
|
|
||||||
----
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
* _name_: theme name (for example `+light+` or a custom name)
|
|
||||||
* _overrides_: hashtable mapping full option names
|
|
||||||
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
|
||||||
retains ownership and may free the hashtable right after the call
|
|
||||||
|
|
||||||
Return value:
|
|
||||||
|
|
||||||
* pointer to the registered theme (existing or newly created), NULL on
|
|
||||||
error
|
|
||||||
|
|
||||||
C example:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
|
||||||
8,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (overrides)
|
|
||||||
{
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
|
||||||
weechat_theme_register ("light", overrides);
|
|
||||||
weechat_hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
Script (Python):
|
|
||||||
|
|
||||||
[source,python]
|
|
||||||
----
|
|
||||||
# prototype
|
|
||||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
|
||||||
|
|
||||||
# example
|
|
||||||
weechat.theme_register("light", {
|
|
||||||
"irc.color.input_nick": "cyan",
|
|
||||||
"irc.color.topic_old": "darkgray",
|
|
||||||
})
|
|
||||||
----
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
Only options that have the _themable_ flag will be set by `/theme apply`.
|
|
||||||
All `*.color.*` options are themable by default; string options that
|
|
||||||
hold `+${color:...}+` references are explicitly opted in. Entries
|
|
||||||
targeting non-themable options are silently skipped at apply-time with
|
|
||||||
a warning logged to the _core_ buffer.
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
When called from a script, the contribution is automatically dropped
|
|
||||||
when the script unloads (no manual cleanup is needed).
|
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== キー割り当て
|
=== キー割り当て
|
||||||
|
|
||||||
|
|||||||
+1
-147
@@ -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 以上
|
||||||
@@ -2375,152 +2375,6 @@ WeeChat は画面に色が表示された時点で色ペアを動的に割り当
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Themes
|
|
||||||
|
|
||||||
A theme is a named bundle of option overrides that can be applied with
|
|
||||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
|
||||||
`"light"` theme tuned for light-background terminals and supports
|
|
||||||
user-defined themes loaded transiently from files.
|
|
||||||
|
|
||||||
[[themes_themable_options]]
|
|
||||||
==== Themable options
|
|
||||||
|
|
||||||
Themes can only set options marked as _themable_. All `*.color.*`
|
|
||||||
options are themable by default; a few string options that hold format
|
|
||||||
expressions with `+${color:...}+` references (such as
|
|
||||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
|
||||||
`+buflist.format.*+` formats) are explicitly opted in.
|
|
||||||
|
|
||||||
You can list the full themable surface area from the
|
|
||||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
|
||||||
|
|
||||||
[[themes_apply]]
|
|
||||||
==== Applying a theme
|
|
||||||
|
|
||||||
To switch to the built-in light-background theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply light
|
|
||||||
----
|
|
||||||
|
|
||||||
The current state of every themable option is saved beforehand to a
|
|
||||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
|
||||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
|
||||||
previous look can be restored at any time with:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
----
|
|
||||||
|
|
||||||
Backup creation can be disabled (not recommended):
|
|
||||||
|
|
||||||
----
|
|
||||||
/set weechat.look.theme_backup off
|
|
||||||
----
|
|
||||||
|
|
||||||
If backup is enabled and the backup file cannot be written, the apply
|
|
||||||
is aborted before any option is changed.
|
|
||||||
|
|
||||||
The name of the last applied theme is stored in
|
|
||||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
|
||||||
|
|
||||||
[[themes_reset]]
|
|
||||||
==== Resetting to defaults
|
|
||||||
|
|
||||||
To restore the look shipped with WeeChat, reset every themable option
|
|
||||||
to its default value:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme reset
|
|
||||||
----
|
|
||||||
|
|
||||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
|
||||||
failure the reset is aborted before any option is changed.
|
|
||||||
`+weechat.look.theme+` is cleared too.
|
|
||||||
|
|
||||||
[[themes_save_delete]]
|
|
||||||
==== Saving and deleting user themes
|
|
||||||
|
|
||||||
Save the current themable options as a new user theme file:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme save mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Every themable option is written, so the file is self-contained and
|
|
||||||
applies the exact same look on any WeeChat, regardless of its current
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
Reserved names (built-in theme names like `+light+` and any name
|
|
||||||
starting with `+backup-+`) are refused. Files live at
|
|
||||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
|
||||||
|
|
||||||
Rename a user theme (typical use: keep a useful automatic backup
|
|
||||||
under a meaningful name):
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme rename backup-20260525-094210-123456 mybackup
|
|
||||||
----
|
|
||||||
|
|
||||||
Built-in themes have no file and cannot be renamed; the target name
|
|
||||||
cannot match a built-in name or start with `+backup-+`, and the
|
|
||||||
target file must not already exist. The `+[info]+` `+name+` field
|
|
||||||
inside the file is rewritten so `/theme info` reports the new name
|
|
||||||
consistently.
|
|
||||||
|
|
||||||
Delete a user theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme delete mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
This removes the file on disk; built-in themes cannot be deleted.
|
|
||||||
|
|
||||||
[[themes_file_format]]
|
|
||||||
==== Theme file format
|
|
||||||
|
|
||||||
A theme file is INI-like with two sections:
|
|
||||||
|
|
||||||
----
|
|
||||||
[info]
|
|
||||||
name = "solarized_light"
|
|
||||||
description = "Light-background theme inspired by Solarized"
|
|
||||||
date = "2026-05-25 09:42:10"
|
|
||||||
weechat = "4.10.0-dev"
|
|
||||||
|
|
||||||
[options]
|
|
||||||
weechat.color.chat = "darkgray"
|
|
||||||
weechat.color.separator = "blue"
|
|
||||||
irc.color.input_nick = "magenta"
|
|
||||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
|
||||||
----
|
|
||||||
|
|
||||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
|
||||||
holds the actual overrides; keys are the full option names that would
|
|
||||||
appear in `/set`. String values can be enclosed in double or single
|
|
||||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
|
||||||
in a theme file are refused at apply time and logged to the core
|
|
||||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
|
||||||
overwrite passwords, autoload lists, or startup commands).
|
|
||||||
|
|
||||||
User theme files are never cached: on every `/theme apply <name>` the
|
|
||||||
file is parsed, applied, and freed.
|
|
||||||
|
|
||||||
[[themes_resolution]]
|
|
||||||
==== Resolution order
|
|
||||||
|
|
||||||
When `+/theme apply <name>+` is run:
|
|
||||||
|
|
||||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
|
||||||
is parsed and used (it shadows any built-in with the same name).
|
|
||||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
|
||||||
registered programmatically by core, plugins and scripts (see the
|
|
||||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
|
||||||
|
|
||||||
If neither source provides the name, the apply is refused.
|
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
+1
-147
@@ -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
|
||||||
@@ -2191,152 +2191,6 @@ Przykład pogrubienia z domyślnym kolorem terminala:
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Motywy
|
|
||||||
|
|
||||||
A theme is a named bundle of option overrides that can be applied with
|
|
||||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
|
||||||
`"light"` theme tuned for light-background terminals and supports
|
|
||||||
user-defined themes loaded transiently from files.
|
|
||||||
|
|
||||||
[[themes_themable_options]]
|
|
||||||
==== Themable options
|
|
||||||
|
|
||||||
Themes can only set options marked as _themable_. All `*.color.*`
|
|
||||||
options are themable by default; a few string options that hold format
|
|
||||||
expressions with `+${color:...}+` references (such as
|
|
||||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
|
||||||
`+buflist.format.*+` formats) are explicitly opted in.
|
|
||||||
|
|
||||||
You can list the full themable surface area from the
|
|
||||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
|
||||||
|
|
||||||
[[themes_apply]]
|
|
||||||
==== Applying a theme
|
|
||||||
|
|
||||||
To switch to the built-in light-background theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply light
|
|
||||||
----
|
|
||||||
|
|
||||||
The current state of every themable option is saved beforehand to a
|
|
||||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
|
||||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
|
||||||
previous look can be restored at any time with:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
----
|
|
||||||
|
|
||||||
Backup creation can be disabled (not recommended):
|
|
||||||
|
|
||||||
----
|
|
||||||
/set weechat.look.theme_backup off
|
|
||||||
----
|
|
||||||
|
|
||||||
If backup is enabled and the backup file cannot be written, the apply
|
|
||||||
is aborted before any option is changed.
|
|
||||||
|
|
||||||
The name of the last applied theme is stored in
|
|
||||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
|
||||||
|
|
||||||
[[themes_reset]]
|
|
||||||
==== Resetting to defaults
|
|
||||||
|
|
||||||
To restore the look shipped with WeeChat, reset every themable option
|
|
||||||
to its default value:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme reset
|
|
||||||
----
|
|
||||||
|
|
||||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
|
||||||
failure the reset is aborted before any option is changed.
|
|
||||||
`+weechat.look.theme+` is cleared too.
|
|
||||||
|
|
||||||
[[themes_save_delete]]
|
|
||||||
==== Saving and deleting user themes
|
|
||||||
|
|
||||||
Save the current themable options as a new user theme file:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme save mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Every themable option is written, so the file is self-contained and
|
|
||||||
applies the exact same look on any WeeChat, regardless of its current
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
Reserved names (built-in theme names like `+light+` and any name
|
|
||||||
starting with `+backup-+`) are refused. Files live at
|
|
||||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
|
||||||
|
|
||||||
Rename a user theme (typical use: keep a useful automatic backup
|
|
||||||
under a meaningful name):
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme rename backup-20260525-094210-123456 mybackup
|
|
||||||
----
|
|
||||||
|
|
||||||
Built-in themes have no file and cannot be renamed; the target name
|
|
||||||
cannot match a built-in name or start with `+backup-+`, and the
|
|
||||||
target file must not already exist. The `+[info]+` `+name+` field
|
|
||||||
inside the file is rewritten so `/theme info` reports the new name
|
|
||||||
consistently.
|
|
||||||
|
|
||||||
Delete a user theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme delete mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
This removes the file on disk; built-in themes cannot be deleted.
|
|
||||||
|
|
||||||
[[themes_file_format]]
|
|
||||||
==== Theme file format
|
|
||||||
|
|
||||||
A theme file is INI-like with two sections:
|
|
||||||
|
|
||||||
----
|
|
||||||
[info]
|
|
||||||
name = "solarized_light"
|
|
||||||
description = "Light-background theme inspired by Solarized"
|
|
||||||
date = "2026-05-25 09:42:10"
|
|
||||||
weechat = "4.10.0-dev"
|
|
||||||
|
|
||||||
[options]
|
|
||||||
weechat.color.chat = "darkgray"
|
|
||||||
weechat.color.separator = "blue"
|
|
||||||
irc.color.input_nick = "magenta"
|
|
||||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
|
||||||
----
|
|
||||||
|
|
||||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
|
||||||
holds the actual overrides; keys are the full option names that would
|
|
||||||
appear in `/set`. String values can be enclosed in double or single
|
|
||||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
|
||||||
in a theme file are refused at apply time and logged to the core
|
|
||||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
|
||||||
overwrite passwords, autoload lists, or startup commands).
|
|
||||||
|
|
||||||
User theme files are never cached: on every `/theme apply <name>` the
|
|
||||||
file is parsed, applied, and freed.
|
|
||||||
|
|
||||||
[[themes_resolution]]
|
|
||||||
==== Resolution order
|
|
||||||
|
|
||||||
When `+/theme apply <name>+` is run:
|
|
||||||
|
|
||||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
|
||||||
is parsed and used (it shadows any built-in with the same name).
|
|
||||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
|
||||||
registered programmatically by core, plugins and scripts (see the
|
|
||||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
|
||||||
|
|
||||||
If neither source provides the name, the apply is refused.
|
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -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 | Израчунавање резултата израза.
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -9436,90 +9436,6 @@ elif rc == weechat.WEECHAT_CONFIG_OPTION_UNSET_ERROR:
|
|||||||
# ...
|
# ...
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Теме
|
|
||||||
|
|
||||||
Functions to contribute color (and other themable option) overrides to
|
|
||||||
built-in themes. See the
|
|
||||||
link:weechat_user.sr.html#themes[user's guide / Themes] section for the
|
|
||||||
end-user side and the `+/theme+` command.
|
|
||||||
|
|
||||||
==== theme_register
|
|
||||||
|
|
||||||
_WeeChat ≥ 4.10.0._
|
|
||||||
|
|
||||||
Register a contribution of option overrides under a named theme. The
|
|
||||||
caller's plugin is the owner of the contribution; subsequent calls
|
|
||||||
with the same theme name from the same plugin merge into the existing
|
|
||||||
contribution (later keys win for duplicates).
|
|
||||||
|
|
||||||
When the calling plugin is unloaded, all its contributions are
|
|
||||||
automatically dropped from every theme.
|
|
||||||
|
|
||||||
Prototype:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_theme *weechat_theme_register (const char *name,
|
|
||||||
struct t_hashtable *overrides);
|
|
||||||
----
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
* _name_: theme name (for example `+light+` or a custom name)
|
|
||||||
* _overrides_: hashtable mapping full option names
|
|
||||||
(e.g. `+irc.color.input_nick+`) to their string values; the caller
|
|
||||||
retains ownership and may free the hashtable right after the call
|
|
||||||
|
|
||||||
Return value:
|
|
||||||
|
|
||||||
* pointer to the registered theme (existing or newly created), NULL on
|
|
||||||
error
|
|
||||||
|
|
||||||
C example:
|
|
||||||
|
|
||||||
[source,c]
|
|
||||||
----
|
|
||||||
struct t_hashtable *overrides = weechat_hashtable_new (
|
|
||||||
8,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (overrides)
|
|
||||||
{
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.input_nick", "cyan");
|
|
||||||
weechat_hashtable_set (overrides, "irc.color.topic_old", "darkgray");
|
|
||||||
weechat_theme_register ("light", overrides);
|
|
||||||
weechat_hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
Script (Python):
|
|
||||||
|
|
||||||
[source,python]
|
|
||||||
----
|
|
||||||
# prototype
|
|
||||||
def theme_register(name: str, overrides: Dict[str, str]) -> str: ...
|
|
||||||
|
|
||||||
# example
|
|
||||||
weechat.theme_register("light", {
|
|
||||||
"irc.color.input_nick": "cyan",
|
|
||||||
"irc.color.topic_old": "darkgray",
|
|
||||||
})
|
|
||||||
----
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
Only options that have the _themable_ flag will be set by `/theme apply`.
|
|
||||||
All `*.color.*` options are themable by default; string options that
|
|
||||||
hold `+${color:...}+` references are explicitly opted in. Entries
|
|
||||||
targeting non-themable options are silently skipped at apply-time with
|
|
||||||
a warning logged to the _core_ buffer.
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
When called from a script, the contribution is automatically dropped
|
|
||||||
when the script unloads (no manual cleanup is needed).
|
|
||||||
|
|
||||||
[[key_bindings]]
|
[[key_bindings]]
|
||||||
=== Тастерске пречице
|
=== Тастерске пречице
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
@@ -1030,19 +1024,12 @@ GET /api/buffers/{id_бафера}/nicks
|
|||||||
GET /api/buffers/{име_бафера}/nicks
|
GET /api/buffers/{име_бафера}/nicks
|
||||||
----
|
----
|
||||||
|
|
||||||
Параметри путање:
|
Параметри упита:
|
||||||
|
|
||||||
* `id_бафера` (цео број, **обавезно**): јединствени идентификатор бафера (не треба
|
* `id_бафера` (цео број, **обавезно**): јединствени идентификатор бафера (не треба
|
||||||
да се помеша са бројем бафера, то је нешто друго)
|
да се помеша са бројем бафера, то је нешто друго)
|
||||||
* `име_бафера` (стринг, **обавезно**): име бафера
|
* `име_бафера` (стринг, **обавезно**): име бафера
|
||||||
|
|
||||||
Параметри упита:
|
|
||||||
|
|
||||||
* `colors` (стринг, није обавезно, подразумевано: `ansi`): како се враћају стрингови са кодовима боје:
|
|
||||||
** `ansi`: враћају се ANSI кодови боје
|
|
||||||
** `weechat`: враћају се WeeChat интерни кодови боје
|
|
||||||
** `strip`: уклањају се боје
|
|
||||||
|
|
||||||
Пример захтева: врати надимке бафера:
|
Пример захтева: врати надимке бафера:
|
||||||
|
|
||||||
[source,shell]
|
[source,shell]
|
||||||
@@ -1188,51 +1175,6 @@ HTTP/1.1 200 OK
|
|||||||
]
|
]
|
||||||
----
|
----
|
||||||
|
|
||||||
[[resource_scripts]]
|
|
||||||
=== Скрипте
|
|
||||||
|
|
||||||
Враћа учитане скрипте (на свим језицима).
|
|
||||||
|
|
||||||
Крајња тачка:
|
|
||||||
|
|
||||||
----
|
|
||||||
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
|
||||||
|
|
||||||
@@ -1562,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
-147
@@ -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
|
||||||
@@ -2093,152 +2093,6 @@ include::{autogendir}/autogen_user_options.sr.adoc[tag=fset_options]
|
|||||||
/set weechat.color.status_time *99999
|
/set weechat.color.status_time *99999
|
||||||
----
|
----
|
||||||
|
|
||||||
// TRANSLATION MISSING
|
|
||||||
[[themes]]
|
|
||||||
=== Теме
|
|
||||||
|
|
||||||
A theme is a named bundle of option overrides that can be applied with
|
|
||||||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
|
||||||
`"light"` theme tuned for light-background terminals and supports
|
|
||||||
user-defined themes loaded transiently from files.
|
|
||||||
|
|
||||||
[[themes_themable_options]]
|
|
||||||
==== Themable options
|
|
||||||
|
|
||||||
Themes can only set options marked as _themable_. All `*.color.*`
|
|
||||||
options are themable by default; a few string options that hold format
|
|
||||||
expressions with `+${color:...}+` references (such as
|
|
||||||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
|
||||||
`+buflist.format.*+` formats) are explicitly opted in.
|
|
||||||
|
|
||||||
You can list the full themable surface area from the
|
|
||||||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
|
||||||
|
|
||||||
[[themes_apply]]
|
|
||||||
==== Applying a theme
|
|
||||||
|
|
||||||
To switch to the built-in light-background theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply light
|
|
||||||
----
|
|
||||||
|
|
||||||
The current state of every themable option is saved beforehand to a
|
|
||||||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
|
||||||
directory `+themes+` inside the WeeChat configuration directory, so the
|
|
||||||
previous look can be restored at any time with:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
----
|
|
||||||
|
|
||||||
Backup creation can be disabled (not recommended):
|
|
||||||
|
|
||||||
----
|
|
||||||
/set weechat.look.theme_backup off
|
|
||||||
----
|
|
||||||
|
|
||||||
If backup is enabled and the backup file cannot be written, the apply
|
|
||||||
is aborted before any option is changed.
|
|
||||||
|
|
||||||
The name of the last applied theme is stored in
|
|
||||||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
|
||||||
|
|
||||||
[[themes_reset]]
|
|
||||||
==== Resetting to defaults
|
|
||||||
|
|
||||||
To restore the look shipped with WeeChat, reset every themable option
|
|
||||||
to its default value:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme reset
|
|
||||||
----
|
|
||||||
|
|
||||||
A backup is written first (same gate as `+/theme apply+`); on backup
|
|
||||||
failure the reset is aborted before any option is changed.
|
|
||||||
`+weechat.look.theme+` is cleared too.
|
|
||||||
|
|
||||||
[[themes_save_delete]]
|
|
||||||
==== Saving and deleting user themes
|
|
||||||
|
|
||||||
Save the current themable options as a new user theme file:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme save mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
Every themable option is written, so the file is self-contained and
|
|
||||||
applies the exact same look on any WeeChat, regardless of its current
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
Reserved names (built-in theme names like `+light+` and any name
|
|
||||||
starting with `+backup-+`) are refused. Files live at
|
|
||||||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
|
||||||
|
|
||||||
Rename a user theme (typical use: keep a useful automatic backup
|
|
||||||
under a meaningful name):
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme rename backup-20260525-094210-123456 mybackup
|
|
||||||
----
|
|
||||||
|
|
||||||
Built-in themes have no file and cannot be renamed; the target name
|
|
||||||
cannot match a built-in name or start with `+backup-+`, and the
|
|
||||||
target file must not already exist. The `+[info]+` `+name+` field
|
|
||||||
inside the file is rewritten so `/theme info` reports the new name
|
|
||||||
consistently.
|
|
||||||
|
|
||||||
Delete a user theme:
|
|
||||||
|
|
||||||
----
|
|
||||||
/theme delete mytheme
|
|
||||||
----
|
|
||||||
|
|
||||||
This removes the file on disk; built-in themes cannot be deleted.
|
|
||||||
|
|
||||||
[[themes_file_format]]
|
|
||||||
==== Theme file format
|
|
||||||
|
|
||||||
A theme file is INI-like with two sections:
|
|
||||||
|
|
||||||
----
|
|
||||||
[info]
|
|
||||||
name = "solarized_light"
|
|
||||||
description = "Light-background theme inspired by Solarized"
|
|
||||||
date = "2026-05-25 09:42:10"
|
|
||||||
weechat = "4.10.0-dev"
|
|
||||||
|
|
||||||
[options]
|
|
||||||
weechat.color.chat = "darkgray"
|
|
||||||
weechat.color.separator = "blue"
|
|
||||||
irc.color.input_nick = "magenta"
|
|
||||||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
|
||||||
----
|
|
||||||
|
|
||||||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
|
||||||
holds the actual overrides; keys are the full option names that would
|
|
||||||
appear in `/set`. String values can be enclosed in double or single
|
|
||||||
quotes; quotes are stripped at parse time. Non-themable options listed
|
|
||||||
in a theme file are refused at apply time and logged to the core
|
|
||||||
buffer (so a `.theme` file imported from an untrusted source cannot
|
|
||||||
overwrite passwords, autoload lists, or startup commands).
|
|
||||||
|
|
||||||
User theme files are never cached: on every `/theme apply <name>` the
|
|
||||||
file is parsed, applied, and freed.
|
|
||||||
|
|
||||||
[[themes_resolution]]
|
|
||||||
==== Resolution order
|
|
||||||
|
|
||||||
When `+/theme apply <name>+` is run:
|
|
||||||
|
|
||||||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
|
||||||
is parsed and used (it shadows any built-in with the same name).
|
|
||||||
* Otherwise the built-in theme registry is consulted; built-ins are
|
|
||||||
registered programmatically by core, plugins and scripts (see the
|
|
||||||
plugin and scripting documentation for `+weechat_theme_register+`).
|
|
||||||
|
|
||||||
If neither source provides the name, the apply is refused.
|
|
||||||
|
|
||||||
[[charset]]
|
[[charset]]
|
||||||
=== Charset
|
=== Charset
|
||||||
|
|
||||||
|
|||||||
@@ -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-23 12:14+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é)"
|
||||||
@@ -16690,9 +16662,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2005 Rudolf Polzer <weechat-te@durchnull.de>
|
# SPDX-FileCopyrightText: 2005 Rudolf Polzer <weechat-te@durchnull.de>
|
||||||
# SPDX-FileCopyrightText: 2006-2007 Thomas Schuetz <i18n@internet-villa.de>
|
# SPDX-FileCopyrightText: 2006-2007 Thomas Schuetz <i18n@internet-villa.de>
|
||||||
# SPDX-FileCopyrightText: 2009-2026 Nils Görs <weechatter@arcor.de>
|
# SPDX-FileCopyrightText: 2009-2019, 2023, 2024, 2025 Nils Görs <weechatter@arcor.de>
|
||||||
# SPDX-FileCopyrightText: 2018 w8rabbit <w8rabbit@mail.i2p>
|
|
||||||
# SPDX-FileCopyrightText: 2015 Sven Knurr <zeug@tuxproject.de>
|
# SPDX-FileCopyrightText: 2015 Sven Knurr <zeug@tuxproject.de>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -22,20 +21,23 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
# w8rabbit <w8rabbit@mail.i2p>, 2018.
|
||||||
|
# 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: weechatter@arcor.de\n"
|
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||||
"POT-Creation-Date: 2026-06-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:28+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 <weechatter@arcor.de>\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"
|
||||||
|
|
||||||
@@ -179,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:"
|
||||||
@@ -1168,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"
|
||||||
|
|
||||||
@@ -1287,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"
|
||||||
@@ -3322,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 "
|
||||||
@@ -3637,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 ""
|
||||||
@@ -3936,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 $"
|
||||||
@@ -11185,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."
|
||||||
@@ -11690,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"
|
||||||
@@ -13123,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 "
|
||||||
@@ -13350,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"
|
||||||
@@ -14585,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, "
|
||||||
@@ -16449,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 "
|
||||||
@@ -16521,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: "
|
||||||
@@ -16535,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 ""
|
||||||
@@ -16661,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"
|
||||||
@@ -16795,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"
|
||||||
@@ -16839,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"
|
||||||
@@ -17079,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"
|
||||||
@@ -17348,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"
|
||||||
@@ -17379,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"
|
||||||
@@ -17507,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 "
|
||||||
@@ -18178,12 +18155,10 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr "> type `command_run`: Befehl(e) (erforderlich)"
|
msgstr "> type `command_run`: Befehl(e) (erforderlich)"
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"> type `timer`: Intervall (erforderlich, in Millisekunden), an Sekunde "
|
"> type `timer`: Intervall (erforderlich), an Sekunden anpassen, maximale "
|
||||||
"anpassen, maximale Anzahl an Aufrufen"
|
"Anzahl an Aufrufen"
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
msgstr "> type `config`: Name der Einstellung (erforderlich)"
|
msgstr "> type `config`: Name der Einstellung (erforderlich)"
|
||||||
|
|||||||
@@ -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-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:46+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 <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 ""
|
||||||
@@ -16980,9 +16956,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -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-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:32+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 <flashcode@flashtux.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)"
|
||||||
@@ -17837,12 +17805,10 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr "> type `command_run` : commande(s) (obligatoire)"
|
msgstr "> type `command_run` : commande(s) (obligatoire)"
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"> type `timer` : intervalle (obligatoire, en millisecondes), alignement sur "
|
"> type `timer` : intervalle (obligatoire), alignement sur la seconde, nombre "
|
||||||
"la seconde, nombre max d'appels"
|
"max d'appels"
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
msgstr "> type `config` : nom(s) de l'option (obligatoire)"
|
msgstr "> type `config` : nom(s) de l'option (obligatoire)"
|
||||||
|
|||||||
@@ -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-23 12:14+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 ""
|
||||||
|
|
||||||
@@ -15910,9 +15888,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -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-23 12:14+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 ""
|
||||||
@@ -17070,9 +17048,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -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-23 12:14+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 ""
|
||||||
"拡張子を含めたスクリプト名 (ワイルドカード \"*\" を使うことができます) (任意)"
|
"拡張子を含めたスクリプト名 (ワイルドカード \"*\" を使うことができます) (任意)"
|
||||||
@@ -17645,9 +17617,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2009-2026 Krzysztof Koroscik <soltys@soltys.info>
|
# SPDX-FileCopyrightText: 2009-2016 Krzysztof Koroscik <soltys1@gmail.com>
|
||||||
# SPDX-FileCopyrightText: 2010 B.J. Stobiecki <bartek@stobiecki.eu>
|
# SPDX-FileCopyrightText: 2010 B.J. Stobiecki <bartek@stobiecki.eu>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
@@ -19,19 +19,21 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
# Krzysztof Korościk <soltys@soltys.info>, 2018, 2019, 2020.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: WeeChat\n"
|
"Project-Id-Version: WeeChat\n"
|
||||||
"Report-Msgid-Bugs-To: soltys@soltys.info\n"
|
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||||
"POT-Creation-Date: 2026-06-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:55+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 <soltys@soltys.info>\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"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
|
"|| n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Generator: Poedit 3.8\n"
|
"X-Generator: Poedit 3.8\n"
|
||||||
|
|
||||||
#. TRANSLATORS: command line option "-a", "--no-connect"
|
#. TRANSLATORS: command line option "-a", "--no-connect"
|
||||||
@@ -164,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:"
|
||||||
@@ -1146,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"
|
||||||
|
|
||||||
@@ -12479,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 "
|
||||||
@@ -12699,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"
|
||||||
@@ -13895,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"
|
||||||
@@ -15715,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\" "
|
||||||
@@ -15739,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 "
|
||||||
@@ -15798,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: "
|
||||||
@@ -15811,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 "
|
||||||
@@ -15931,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"
|
||||||
@@ -16070,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"
|
||||||
@@ -16115,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ę"
|
||||||
@@ -16348,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 "
|
||||||
@@ -16745,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)\""
|
||||||
@@ -17386,11 +17326,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr "> typ `command_run`: komenda(-y) (wymagane)"
|
msgstr "> typ `command_run`: komenda(-y) (wymagane)"
|
||||||
|
|
||||||
#, fuzzy
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
#| msgid "> type `timer`: interval (required), align on second, max calls"
|
|
||||||
msgid ""
|
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"> typ `timer`: interwał (wymagany), wyrównane do sekund, maksymalne wywołania"
|
"> typ `timer`: interwał (wymagany), wyrównane do sekund, maksymalne wywołania"
|
||||||
|
|
||||||
|
|||||||
@@ -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-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:48+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 <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) "
|
||||||
@@ -17535,9 +17508,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
+24
-49
@@ -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-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:49+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 ""
|
||||||
@@ -16466,9 +16443,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -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-23 12:14+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 ""
|
||||||
|
|
||||||
@@ -15962,9 +15940,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -21,16 +21,17 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: WeeChat\n"
|
"Project-Id-Version: WeeChat\n"
|
||||||
"Report-Msgid-Bugs-To: ivan.pesic@gmail.com\n"
|
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||||
"POT-Creation-Date: 2026-06-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:52+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 <ivan.pesic@gmail.com>\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"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||||
|
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
#. TRANSLATORS: command line option "-a", "--no-connect"
|
#. TRANSLATORS: command line option "-a", "--no-connect"
|
||||||
msgid "disable auto-connect to servers at startup"
|
msgid "disable auto-connect to servers at startup"
|
||||||
@@ -165,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 "Употреба:"
|
||||||
@@ -1137,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 "управљање тракама"
|
||||||
|
|
||||||
@@ -1253,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 "вредност: нова вредност опције"
|
||||||
@@ -1788,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]: приказује резултат и не шаље га у бафер (дибаг режим)"
|
||||||
@@ -1805,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 "
|
||||||
@@ -3463,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:"
|
||||||
@@ -4050,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)"
|
||||||
@@ -11906,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 \"~\" "
|
||||||
@@ -11916,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 баферу"
|
||||||
@@ -12445,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 "
|
||||||
@@ -12665,12 +12666,11 @@ 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 ""
|
||||||
"%d канала (укупно: %d) | Филтер: %s | Сортирање: %s | Тастери: ctrl+j="
|
"%d канала (укупно: %d) | Филтер: %s | Сортирање: %s | Тастер(унос): ctrl+j= "
|
||||||
"приступ каналу | Унос: $=освежавање, s:x,y=сортирање, *=ресет филтера, "
|
"приступ каналу, ($)=освежавање, (q)=затварање бафера"
|
||||||
"q=затварање бафера"
|
|
||||||
|
|
||||||
msgid "Empty list of channels, try \"$\" to refresh list"
|
msgid "Empty list of channels, try \"$\" to refresh list"
|
||||||
msgstr "Празна листа канала, покушајте „$” да освежите листу"
|
msgstr "Празна листа канала, покушајте „$” да освежите листу"
|
||||||
@@ -13867,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"
|
||||||
@@ -13877,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 ""
|
||||||
@@ -15678,29 +15678,29 @@ 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 ""
|
||||||
"листа хеш алгоритама раздвојених запетама који се користе за аутентификацију "
|
"листа хеш алгоритама раздвојених запетама који се користе за аутентификацију "
|
||||||
"лозинке у „api” и „weechat” протоколима, који могу бити: „plain” (лозинка је "
|
"лозинке у weechat протоколу, могу бити: „plain” (лозинка је чисти текст, не "
|
||||||
"чисти текст, не хешира се), „sha256”, „sha512”, „pbkdf2+sha256”, „pbkdf2+"
|
"хешира се), „sha256”, „sha512”, „pbkdf2+sha256”, „pbkdf2+sha512”), „*” значи "
|
||||||
"sha512”), „*” значи сви алгоритми, име које почиње са „!” је негативна "
|
"сви алгоритми, име које почиње са „!” је негативна вредност којим се "
|
||||||
"вредност којим се спречава употреба тог алгоритма, у именима је дозвољена "
|
"спречава употреба тог алгоритма, у именима је дозвољена употреба џокера „*” "
|
||||||
"употреба џокера „*” (примери: „*”, „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 ""
|
||||||
"број итерација који се захтева од клијента у „api” и „weechat” протоколима "
|
"број итерација који се захтева од клијента у weechat протоколу када се за "
|
||||||
"када се за аутентификацију користи лозинка хеширана PBKDF2 алгоритмом; више "
|
"аутентификацију користи лозинка хеширана PBKDF2 алгоритмом ; више итерација "
|
||||||
"итерација је боље у смислу безбедности, али је спорије за израчунавање; ако "
|
"је боље у смислу безбедности, али је спорије за израчунавање; ако је ваш CPU "
|
||||||
"је ваш CPU спор, овај број не би требало да буде сувише велики"
|
"спор, овај број не би требало да буде сувише велики"
|
||||||
|
|
||||||
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 "
|
||||||
@@ -15744,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: "
|
||||||
@@ -15876,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"
|
||||||
@@ -16013,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"
|
||||||
@@ -16057,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 "повезивање"
|
||||||
@@ -16288,15 +16276,15 @@ msgstr "Alt+тастер/унос: v=назад на листу d=скок на
|
|||||||
|
|
||||||
#, 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 скрипти | Филтер: %s | Сортирање: %s | Alt+тастер/унос: i=инсталација, "
|
"%d/%d скрипти (филтер: %s) | Сортирање: %s | Alt+тастер/унос: i=инсталација, "
|
||||||
"r=уклањање, l=учитавање, L=поновно учитавање, u=уклањање из меморије, "
|
"r=уклањање, l=учитавање, L=поновно учитавање, u=уклањање из меморије, "
|
||||||
"A=аутоучитавање, h=задржавање, v=преглед скрипте | Унос: q=затварање, "
|
"A=аутоучитавање, h=задржавање, v=преглед скрипте | Унос: q=затварање, "
|
||||||
"$=освежавање, s:x,y=сортирање, words=филтер, *=ресет филтера | Миш: "
|
"$=освежавање, s:x,y=сортирање, речи=филтер, *=ресет филтера | Миш: "
|
||||||
"леви=избор, десни=инсталација/уклањање"
|
"леви=избор, десни=инсталација/уклањање"
|
||||||
|
|
||||||
msgid "Scripts"
|
msgid "Scripts"
|
||||||
@@ -16673,9 +16661,6 @@ msgstr "1 ако је скрипта учитана"
|
|||||||
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 "име скрипте са екстензијом (дозвољен је џокер „*”) (није обавезно)"
|
||||||
|
|
||||||
@@ -17309,12 +17294,8 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr "> тип `command_run`: команд(а/е) (обавезно)"
|
msgstr "> тип `command_run`: команд(а/е) (обавезно)"
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
msgstr "> тип `timer`: интервал (обавезан), поравнање на секунди, макс позива"
|
||||||
"calls"
|
|
||||||
msgstr ""
|
|
||||||
"> тип `timer`: интервал (обавезан, у милисекундама), поравнање на секунди, "
|
|
||||||
"макс позива"
|
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
msgstr "> тип `config`: име(на) опције (обавезно)"
|
msgstr "> тип `config`: име(на) опције (обавезно)"
|
||||||
@@ -17720,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 "Статус куцања корисника"
|
||||||
@@ -17856,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 "
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# SPDX-FileCopyrightText: 2013 Hasan Kiran <sunder67@hotmail.com>
|
# SPDX-FileCopyrightText: 2013 Hasan Kiran <sunder67@hotmail.com>
|
||||||
# SPDX-FileCopyrightText: 2020-2026 Emir SARI <emir_sari@icloud.com>
|
# SPDX-FileCopyrightText: 2020-2025 Emir SARI <emir_sari@icloud.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
@@ -22,11 +22,11 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: WeeChat\n"
|
"Project-Id-Version: WeeChat\n"
|
||||||
"Report-Msgid-Bugs-To: emir_sari@icloud.com\n"
|
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||||
"POT-Creation-Date: 2026-06-23 12:14+0200\n"
|
"POT-Creation-Date: 2026-03-21 17:24+0100\n"
|
||||||
"PO-Revision-Date: 2026-06-28 08:53+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 <emir_sari@icloud.com>\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ı)"
|
||||||
|
|
||||||
@@ -17755,9 +17751,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
@@ -18144,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"
|
||||||
|
|||||||
+20
-44
@@ -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-23 12:14+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 ""
|
||||||
|
|
||||||
@@ -14579,9 +14557,7 @@ msgstr ""
|
|||||||
msgid "> type `command_run`: command(s) (required)"
|
msgid "> type `command_run`: command(s) (required)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid "> type `timer`: interval (required), align on second, max calls"
|
||||||
"> type `timer`: interval (required, in milliseconds), align on second, max "
|
|
||||||
"calls"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "> type `config`: name(s) of option (required)"
|
msgid "> type `config`: name(s) of option (required)"
|
||||||
|
|||||||
@@ -51,8 +51,6 @@ set(LIB_CORE_SRC
|
|||||||
core-signal.c core-signal.h
|
core-signal.c core-signal.h
|
||||||
core-string.c core-string.h
|
core-string.c core-string.h
|
||||||
core-sys.c core-sys.h
|
core-sys.c core-sys.h
|
||||||
core-theme.c core-theme.h
|
|
||||||
core-theme-builtin.c
|
|
||||||
core-upgrade.c core-upgrade.h
|
core-upgrade.c core-upgrade.h
|
||||||
core-upgrade-file.c core-upgrade-file.h
|
core-upgrade-file.c core-upgrade-file.h
|
||||||
core-url.c core-url.h
|
core-url.c core-url.h
|
||||||
|
|||||||
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
+164
-409
@@ -68,7 +68,6 @@
|
|||||||
#include "core-signal.h"
|
#include "core-signal.h"
|
||||||
#include "core-string.h"
|
#include "core-string.h"
|
||||||
#include "core-sys.h"
|
#include "core-sys.h"
|
||||||
#include "core-theme.h"
|
|
||||||
#include "core-upgrade.h"
|
#include "core-upgrade.h"
|
||||||
#include "core-url.h"
|
#include "core-url.h"
|
||||||
#include "core-utf8.h"
|
#include "core-utf8.h"
|
||||||
@@ -241,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;
|
||||||
@@ -331,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\""),
|
||||||
@@ -569,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)
|
||||||
@@ -604,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))
|
||||||
{
|
{
|
||||||
@@ -662,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;
|
||||||
@@ -747,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++)
|
||||||
@@ -757,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)
|
||||||
@@ -815,20 +817,19 @@ 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
|
||||||
@@ -939,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)
|
||||||
{
|
{
|
||||||
@@ -965,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,
|
||||||
@@ -974,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;
|
||||||
}
|
}
|
||||||
@@ -994,12 +998,13 @@ 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;
|
||||||
|
(void) strtol (argv[i], &error, 10);
|
||||||
|
if (error && !error[0])
|
||||||
|
{
|
||||||
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)
|
||||||
{
|
{
|
||||||
@@ -1010,10 +1015,6 @@ COMMAND_CALLBACK(buffer)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1036,12 +1037,13 @@ 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;
|
||||||
|
(void) strtol (argv[i], &error, 10);
|
||||||
|
if (error && !error[0])
|
||||||
|
{
|
||||||
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)
|
||||||
{
|
{
|
||||||
@@ -1052,9 +1054,6 @@ COMMAND_CALLBACK(buffer)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1099,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,
|
||||||
@@ -1108,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
|
||||||
@@ -1119,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;
|
||||||
}
|
}
|
||||||
@@ -1158,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;
|
||||||
@@ -1184,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1193,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);
|
||||||
}
|
}
|
||||||
@@ -1459,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;
|
||||||
@@ -1518,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;
|
||||||
@@ -1571,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)
|
||||||
@@ -1604,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)
|
||||||
@@ -1635,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 */
|
||||||
@@ -1670,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;
|
||||||
@@ -1715,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);
|
||||||
|
|
||||||
@@ -1728,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;
|
||||||
@@ -1748,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,
|
||||||
@@ -1761,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;
|
||||||
@@ -1785,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;
|
||||||
@@ -1805,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,
|
||||||
@@ -1912,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 */
|
||||||
@@ -1940,13 +1966,19 @@ 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])
|
||||||
|
{
|
||||||
|
error = NULL;
|
||||||
|
y = (int) strtol (pos, &error, 10);
|
||||||
|
if (error && !error[0])
|
||||||
{
|
{
|
||||||
gui_cursor_move_xy (x, y);
|
gui_cursor_move_xy (x, y);
|
||||||
free (str_x);
|
free (str_x);
|
||||||
return WEECHAT_RC_OK;
|
return WEECHAT_RC_OK;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
free (str_x);
|
free (str_x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3499,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;
|
||||||
@@ -3516,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4837,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);
|
||||||
@@ -5535,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;
|
||||||
@@ -5600,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)
|
||||||
{
|
{
|
||||||
@@ -5610,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;
|
||||||
@@ -5834,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;
|
||||||
@@ -5881,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],
|
||||||
@@ -6209,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 */
|
||||||
@@ -6228,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,
|
||||||
@@ -7121,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;
|
||||||
@@ -7152,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,
|
||||||
@@ -7173,255 +7225,14 @@ 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Callback for "dir_exec_on_files": collects names of files matching
|
|
||||||
* "*.theme" into an arraylist passed as data; "backup-*.theme" is
|
|
||||||
* excluded when *(int *)data->show_backups is zero.
|
|
||||||
*
|
|
||||||
* The arraylist is iterated outside this callback so all dirent
|
|
||||||
* processing can happen in one place.
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct t_command_theme_dir_collect
|
|
||||||
{
|
|
||||||
struct t_arraylist *names; /* arraylist of char * (owned) */
|
|
||||||
int show_backups; /* include backup-*.theme ? */
|
|
||||||
};
|
|
||||||
|
|
||||||
void
|
|
||||||
command_theme_collect_file_cb (void *data, const char *filename)
|
|
||||||
{
|
|
||||||
struct t_command_theme_dir_collect *ctx;
|
|
||||||
const char *base;
|
|
||||||
char *name;
|
|
||||||
size_t len;
|
|
||||||
|
|
||||||
ctx = (struct t_command_theme_dir_collect *)data;
|
|
||||||
base = strrchr (filename, '/');
|
|
||||||
base = (base) ? base + 1 : filename;
|
|
||||||
len = strlen (base);
|
|
||||||
if ((len < 7) || (strcmp (base + len - 6, ".theme") != 0))
|
|
||||||
return;
|
|
||||||
if (!ctx->show_backups && (strncmp (base, "backup-", 7) == 0))
|
|
||||||
return;
|
|
||||||
name = string_strndup (base, len - 6);
|
|
||||||
if (name)
|
|
||||||
arraylist_add (ctx->names, name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
command_theme_strcmp_cb (void *data, struct t_arraylist *arraylist,
|
|
||||||
void *pointer1, void *pointer2)
|
|
||||||
{
|
|
||||||
/* make C compiler happy */
|
|
||||||
(void) data;
|
|
||||||
(void) arraylist;
|
|
||||||
|
|
||||||
return strcmp ((const char *)pointer1, (const char *)pointer2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Callback for command "/theme": list or display details on themes.
|
|
||||||
*/
|
|
||||||
|
|
||||||
COMMAND_CALLBACK(theme)
|
|
||||||
{
|
|
||||||
struct t_arraylist *list, *file_names;
|
|
||||||
struct t_command_theme_dir_collect collect;
|
|
||||||
struct t_theme *ptr_theme, *file_theme;
|
|
||||||
const char *ptr_active, *ptr_name;
|
|
||||||
char *path, *dir;
|
|
||||||
int i, size, show_backups;
|
|
||||||
|
|
||||||
/* make C compiler happy */
|
|
||||||
(void) pointer;
|
|
||||||
(void) data;
|
|
||||||
(void) buffer;
|
|
||||||
(void) argv_eol;
|
|
||||||
|
|
||||||
/* "/theme" or "/theme list [-backups]": list themes */
|
|
||||||
if ((argc == 1) || (string_strcmp (argv[1], "list") == 0))
|
|
||||||
{
|
|
||||||
show_backups = ((argc >= 3)
|
|
||||||
&& (string_strcmp (argv[2], "-backups") == 0));
|
|
||||||
ptr_active = CONFIG_STRING(config_look_theme);
|
|
||||||
|
|
||||||
list = theme_list ();
|
|
||||||
|
|
||||||
/* scan ${weechat_config_dir}/themes/ for *.theme files */
|
|
||||||
file_names = arraylist_new (8, 1, 0,
|
|
||||||
&command_theme_strcmp_cb, NULL,
|
|
||||||
NULL, NULL);
|
|
||||||
if (file_names)
|
|
||||||
{
|
|
||||||
dir = NULL;
|
|
||||||
string_asprintf (&dir, "%s/themes", weechat_config_dir);
|
|
||||||
if (dir)
|
|
||||||
{
|
|
||||||
collect.names = file_names;
|
|
||||||
collect.show_backups = show_backups;
|
|
||||||
dir_exec_on_files (dir, 0, 0,
|
|
||||||
&command_theme_collect_file_cb,
|
|
||||||
&collect);
|
|
||||||
free (dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((!list || (arraylist_size (list) == 0))
|
|
||||||
&& (!file_names || (arraylist_size (file_names) == 0)))
|
|
||||||
{
|
|
||||||
gui_chat_printf (NULL, _("No theme available"));
|
|
||||||
arraylist_free (list);
|
|
||||||
arraylist_free (file_names);
|
|
||||||
return WEECHAT_RC_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
gui_chat_printf (NULL, "");
|
|
||||||
gui_chat_printf (NULL, _("Themes:"));
|
|
||||||
size = (list) ? arraylist_size (list) : 0;
|
|
||||||
for (i = 0; i < size; i++)
|
|
||||||
{
|
|
||||||
ptr_theme = (struct t_theme *)arraylist_get (list, i);
|
|
||||||
gui_chat_printf (
|
|
||||||
NULL,
|
|
||||||
" %s %s%s%s%s%s",
|
|
||||||
(ptr_active && (strcmp (ptr_active, ptr_theme->name) == 0))
|
|
||||||
? "->" : " ",
|
|
||||||
GUI_COLOR(GUI_COLOR_CHAT_BUFFER),
|
|
||||||
ptr_theme->name,
|
|
||||||
GUI_COLOR(GUI_COLOR_CHAT_DELIMITERS),
|
|
||||||
(ptr_theme->description && ptr_theme->description[0])
|
|
||||||
? ": " : "",
|
|
||||||
(ptr_theme->description) ? ptr_theme->description : "");
|
|
||||||
}
|
|
||||||
size = (file_names) ? arraylist_size (file_names) : 0;
|
|
||||||
for (i = 0; i < size; i++)
|
|
||||||
{
|
|
||||||
ptr_name = (const char *)arraylist_get (file_names, i);
|
|
||||||
gui_chat_printf (
|
|
||||||
NULL,
|
|
||||||
" %s %s%s%s (file)",
|
|
||||||
(ptr_active && (strcmp (ptr_active, ptr_name) == 0))
|
|
||||||
? "->" : " ",
|
|
||||||
GUI_COLOR(GUI_COLOR_CHAT_BUFFER),
|
|
||||||
ptr_name,
|
|
||||||
GUI_COLOR(GUI_COLOR_CHAT));
|
|
||||||
}
|
|
||||||
if (file_names)
|
|
||||||
{
|
|
||||||
size = arraylist_size (file_names);
|
|
||||||
for (i = 0; i < size; i++)
|
|
||||||
free (arraylist_get (file_names, i));
|
|
||||||
arraylist_free (file_names);
|
|
||||||
}
|
|
||||||
arraylist_free (list);
|
|
||||||
return WEECHAT_RC_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* "/theme apply <name>": apply a theme */
|
|
||||||
if (string_strcmp (argv[1], "apply") == 0)
|
|
||||||
{
|
|
||||||
COMMAND_MIN_ARGS(3, "apply");
|
|
||||||
return theme_apply (argv[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* "/theme reset": reset every themable option to its default value */
|
|
||||||
if (string_strcmp (argv[1], "reset") == 0)
|
|
||||||
{
|
|
||||||
return theme_reset ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* "/theme save <name>": write a user theme file */
|
|
||||||
if (string_strcmp (argv[1], "save") == 0)
|
|
||||||
{
|
|
||||||
COMMAND_MIN_ARGS(3, "save");
|
|
||||||
return theme_save (argv[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* "/theme rename <old> <new>": rename a user theme file */
|
|
||||||
if (string_strcmp (argv[1], "rename") == 0)
|
|
||||||
{
|
|
||||||
COMMAND_MIN_ARGS(4, "rename");
|
|
||||||
return theme_rename (argv[2], argv[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* "/theme delete <name>": remove a user theme file */
|
|
||||||
if (string_strcmp (argv[1], "delete") == 0)
|
|
||||||
{
|
|
||||||
COMMAND_MIN_ARGS(3, "delete");
|
|
||||||
return theme_delete (argv[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* "/theme info <name>": show details about a theme */
|
|
||||||
if (string_strcmp (argv[1], "info") == 0)
|
|
||||||
{
|
|
||||||
COMMAND_MIN_ARGS(3, "info");
|
|
||||||
/* file shadows registry: try user file first */
|
|
||||||
path = theme_user_file_path (argv[2]);
|
|
||||||
file_theme = NULL;
|
|
||||||
if (path && (access (path, R_OK) == 0))
|
|
||||||
file_theme = theme_file_parse (path);
|
|
||||||
if (!file_theme)
|
|
||||||
{
|
|
||||||
free (path);
|
|
||||||
path = NULL;
|
|
||||||
ptr_theme = theme_search (argv[2]);
|
|
||||||
if (!ptr_theme)
|
|
||||||
{
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_("%sTheme \"%s\" not found"),
|
|
||||||
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
|
|
||||||
argv[2]);
|
|
||||||
return WEECHAT_RC_ERROR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ptr_theme = file_theme;
|
|
||||||
}
|
|
||||||
gui_chat_printf (NULL, "");
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_("Theme \"%s%s%s\":"),
|
|
||||||
GUI_COLOR(GUI_COLOR_CHAT_BUFFER),
|
|
||||||
(ptr_theme->name && ptr_theme->name[0])
|
|
||||||
? ptr_theme->name : argv[2],
|
|
||||||
GUI_COLOR(GUI_COLOR_CHAT));
|
|
||||||
if (path)
|
|
||||||
{
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_(" source : %s"), path);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_(" source : built-in (in-memory)"));
|
|
||||||
}
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_(" description : %s"),
|
|
||||||
(ptr_theme->description) ? ptr_theme->description : "");
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_(" date : %s"),
|
|
||||||
(ptr_theme->date) ? ptr_theme->date : "");
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_(" WeeChat version: %s"),
|
|
||||||
(ptr_theme->weechat_version)
|
|
||||||
? ptr_theme->weechat_version : "");
|
|
||||||
gui_chat_printf (NULL,
|
|
||||||
_(" overrides : %d"),
|
|
||||||
theme_overrides_count (ptr_theme));
|
|
||||||
free (path);
|
|
||||||
theme_free (file_theme);
|
|
||||||
return WEECHAT_RC_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
COMMAND_ERROR;
|
COMMAND_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7646,7 +7457,7 @@ command_upgrade_display (struct t_gui_buffer *buffer,
|
|||||||
str_first_start[0] = '\0';
|
str_first_start[0] = '\0';
|
||||||
str_last_start[0] = '\0';
|
str_last_start[0] = '\0';
|
||||||
|
|
||||||
weechat_last_start_time = weechat_current_start_timeval.tv_sec;
|
weechat_last_start_time = (time_t)weechat_current_start_timeval.tv_sec;
|
||||||
|
|
||||||
if (translated_string)
|
if (translated_string)
|
||||||
{
|
{
|
||||||
@@ -8169,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;
|
||||||
@@ -8231,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)
|
||||||
@@ -8350,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);
|
||||||
@@ -8359,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8370,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);
|
||||||
@@ -8379,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8406,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)
|
||||||
{
|
{
|
||||||
@@ -8544,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;
|
||||||
@@ -8552,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;
|
||||||
@@ -8592,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",
|
||||||
@@ -10077,65 +9891,6 @@ command_init (void)
|
|||||||
" || suspend"
|
" || suspend"
|
||||||
" || waitpid 1|10|100|1000",
|
" || waitpid 1|10|100|1000",
|
||||||
&command_sys, NULL, NULL);
|
&command_sys, NULL, NULL);
|
||||||
hook_command (
|
|
||||||
NULL, "theme",
|
|
||||||
N_("manage color themes"),
|
|
||||||
/* TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated */
|
|
||||||
N_("[list [-backups]]"
|
|
||||||
" || apply <name>"
|
|
||||||
" || reset"
|
|
||||||
" || save <name>"
|
|
||||||
" || rename <old> <new>"
|
|
||||||
" || delete <name>"
|
|
||||||
" || info <name>"),
|
|
||||||
CMD_ARGS_DESC(
|
|
||||||
N_("raw[list]: list registered themes and any *.theme files in "
|
|
||||||
"the WeeChat configuration directory; the active theme "
|
|
||||||
"(matching weechat.look.theme) is marked with \"->\". By "
|
|
||||||
"default backup-*.theme files are hidden; pass \"-backups\" "
|
|
||||||
"to include them"),
|
|
||||||
N_("raw[apply]: apply a theme (set every themable option to the "
|
|
||||||
"value from the theme); if a file named <name>.theme "
|
|
||||||
"exists in directory \"themes\" it shadows any built-in "
|
|
||||||
"theme of the same name"),
|
|
||||||
N_("raw[reset]: reset every themable option to its default "
|
|
||||||
"value (restores the original look shipped with WeeChat)"),
|
|
||||||
N_("raw[save]: save current themable options to a file "
|
|
||||||
"<name>.theme in directory \"themes\"; every themable "
|
|
||||||
"option is written, so the file is self-contained; the "
|
|
||||||
"name must not match a built-in theme or start with "
|
|
||||||
"\"backup-\""),
|
|
||||||
N_("raw[rename]: rename a user theme file (typically to "
|
|
||||||
"give an automatic backup a meaningful name); refuses to "
|
|
||||||
"rename built-in themes, refuses target names matching a "
|
|
||||||
"built-in or starting with \"backup-\", and refuses if "
|
|
||||||
"the target file already exists"),
|
|
||||||
N_("raw[delete]: delete a user theme file (refuses to delete "
|
|
||||||
"built-in themes, which have no file)"),
|
|
||||||
N_("raw[info]: display details on a theme (name, description, "
|
|
||||||
"creation date, WeeChat version, number of option overrides)"),
|
|
||||||
N_("name: name of a theme"),
|
|
||||||
"",
|
|
||||||
N_("Themes are named bundles of color (and other themable) "
|
|
||||||
"option overrides. Built-in themes are registered in memory "
|
|
||||||
"by core/plugins/scripts; user themes are read from files "
|
|
||||||
"in directory \"themes\" inside the WeeChat configuration "
|
|
||||||
"directory."),
|
|
||||||
"",
|
|
||||||
N_("By default, /theme apply creates a backup of current "
|
|
||||||
"themable values in directory \"themes\" before applying "
|
|
||||||
"(file name: \"backup-<timestamp>.theme\"); the previous "
|
|
||||||
"state can be restored with: /theme apply "
|
|
||||||
"backup-<timestamp>. This is controlled by the option "
|
|
||||||
"weechat.look.theme_backup.")),
|
|
||||||
"list -backups"
|
|
||||||
" || apply %(theme_themes_all)"
|
|
||||||
" || reset"
|
|
||||||
" || save %(theme_themes_user)"
|
|
||||||
" || rename %(theme_themes_files)"
|
|
||||||
" || delete %(theme_themes_user)"
|
|
||||||
" || info %(theme_themes_all)",
|
|
||||||
&command_theme, NULL, NULL);
|
|
||||||
hook_command (
|
hook_command (
|
||||||
NULL, "toggle",
|
NULL, "toggle",
|
||||||
N_("toggle value of a config option"),
|
N_("toggle value of a config option"),
|
||||||
|
|||||||
@@ -46,7 +46,6 @@
|
|||||||
#include "core-proxy.h"
|
#include "core-proxy.h"
|
||||||
#include "core-secure.h"
|
#include "core-secure.h"
|
||||||
#include "core-string.h"
|
#include "core-string.h"
|
||||||
#include "core-theme.h"
|
|
||||||
#include "../gui/gui-completion.h"
|
#include "../gui/gui-completion.h"
|
||||||
#include "../gui/gui-bar.h"
|
#include "../gui/gui-bar.h"
|
||||||
#include "../gui/gui-bar-item.h"
|
#include "../gui/gui-bar-item.h"
|
||||||
@@ -1975,151 +1974,6 @@ completion_list_add_layouts_names_cb (const void *pointer, void *data,
|
|||||||
return WEECHAT_RC_OK;
|
return WEECHAT_RC_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Add filename (without ".theme" suffix) to completion list if it ends
|
|
||||||
* with ".theme"; skips "backup-*.theme" entries unless data is non-NULL.
|
|
||||||
*
|
|
||||||
* Callback for dir_exec_on_files; "data" carries a pair of pointers:
|
|
||||||
* data[0] = struct t_gui_completion *completion (target)
|
|
||||||
* data[1] = int *show_backups
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct t_completion_theme_dir
|
|
||||||
{
|
|
||||||
struct t_gui_completion *completion;
|
|
||||||
int show_backups;
|
|
||||||
};
|
|
||||||
|
|
||||||
void
|
|
||||||
completion_theme_add_file_cb (void *data, const char *filename)
|
|
||||||
{
|
|
||||||
struct t_completion_theme_dir *ctx;
|
|
||||||
const char *base;
|
|
||||||
char *name;
|
|
||||||
size_t len;
|
|
||||||
|
|
||||||
ctx = (struct t_completion_theme_dir *)data;
|
|
||||||
base = strrchr (filename, '/');
|
|
||||||
base = (base) ? base + 1 : filename;
|
|
||||||
len = strlen (base);
|
|
||||||
if ((len < 7) || (strcmp (base + len - 6, ".theme") != 0))
|
|
||||||
return;
|
|
||||||
if (!ctx->show_backups && (strncmp (base, "backup-", 7) == 0))
|
|
||||||
return;
|
|
||||||
name = string_strndup (base, len - 6);
|
|
||||||
if (!name)
|
|
||||||
return;
|
|
||||||
gui_completion_list_add (ctx->completion, name, 0, WEECHAT_LIST_POS_SORT);
|
|
||||||
free (name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Add theme names to completion list: in-memory built-ins plus any
|
|
||||||
* "*.theme" files in <weechat_config_dir>/themes/ (including backups).
|
|
||||||
*/
|
|
||||||
|
|
||||||
int
|
|
||||||
completion_list_add_theme_themes_all_cb (const void *pointer, void *data,
|
|
||||||
const char *completion_item,
|
|
||||||
struct t_gui_buffer *buffer,
|
|
||||||
struct t_gui_completion *completion)
|
|
||||||
{
|
|
||||||
struct t_theme *ptr_theme;
|
|
||||||
struct t_completion_theme_dir ctx;
|
|
||||||
char *dir;
|
|
||||||
|
|
||||||
/* make C compiler happy */
|
|
||||||
(void) pointer;
|
|
||||||
(void) data;
|
|
||||||
(void) completion_item;
|
|
||||||
(void) buffer;
|
|
||||||
|
|
||||||
for (ptr_theme = themes; ptr_theme; ptr_theme = ptr_theme->next_theme)
|
|
||||||
{
|
|
||||||
gui_completion_list_add (completion, ptr_theme->name,
|
|
||||||
0, WEECHAT_LIST_POS_SORT);
|
|
||||||
}
|
|
||||||
|
|
||||||
dir = NULL;
|
|
||||||
string_asprintf (&dir, "%s/themes", weechat_config_dir);
|
|
||||||
if (dir)
|
|
||||||
{
|
|
||||||
ctx.completion = completion;
|
|
||||||
ctx.show_backups = 1;
|
|
||||||
dir_exec_on_files (dir, 0, 0, &completion_theme_add_file_cb, &ctx);
|
|
||||||
free (dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
return WEECHAT_RC_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Add user theme file names (excluding built-ins and backups) to the
|
|
||||||
* completion list; suitable for /theme save and /theme delete.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int
|
|
||||||
completion_list_add_theme_themes_user_cb (const void *pointer, void *data,
|
|
||||||
const char *completion_item,
|
|
||||||
struct t_gui_buffer *buffer,
|
|
||||||
struct t_gui_completion *completion)
|
|
||||||
{
|
|
||||||
struct t_completion_theme_dir ctx;
|
|
||||||
char *dir;
|
|
||||||
|
|
||||||
/* make C compiler happy */
|
|
||||||
(void) pointer;
|
|
||||||
(void) data;
|
|
||||||
(void) completion_item;
|
|
||||||
(void) buffer;
|
|
||||||
|
|
||||||
dir = NULL;
|
|
||||||
string_asprintf (&dir, "%s/themes", weechat_config_dir);
|
|
||||||
if (dir)
|
|
||||||
{
|
|
||||||
ctx.completion = completion;
|
|
||||||
ctx.show_backups = 0;
|
|
||||||
dir_exec_on_files (dir, 0, 0, &completion_theme_add_file_cb, &ctx);
|
|
||||||
free (dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
return WEECHAT_RC_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Add every on-disk theme file (user files + backups, no built-ins)
|
|
||||||
* to the completion list; suitable for /theme rename which can take a
|
|
||||||
* backup as its source.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int
|
|
||||||
completion_list_add_theme_themes_files_cb (const void *pointer, void *data,
|
|
||||||
const char *completion_item,
|
|
||||||
struct t_gui_buffer *buffer,
|
|
||||||
struct t_gui_completion *completion)
|
|
||||||
{
|
|
||||||
struct t_completion_theme_dir ctx;
|
|
||||||
char *dir;
|
|
||||||
|
|
||||||
/* make C compiler happy */
|
|
||||||
(void) pointer;
|
|
||||||
(void) data;
|
|
||||||
(void) completion_item;
|
|
||||||
(void) buffer;
|
|
||||||
|
|
||||||
dir = NULL;
|
|
||||||
string_asprintf (&dir, "%s/themes", weechat_config_dir);
|
|
||||||
if (dir)
|
|
||||||
{
|
|
||||||
ctx.completion = completion;
|
|
||||||
ctx.show_backups = 1;
|
|
||||||
dir_exec_on_files (dir, 0, 0, &completion_theme_add_file_cb, &ctx);
|
|
||||||
free (dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
return WEECHAT_RC_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add a secured data to completion list.
|
* Add a secured data to completion list.
|
||||||
*/
|
*/
|
||||||
@@ -2511,16 +2365,6 @@ completion_init (void)
|
|||||||
hook_completion (NULL, "layouts_names",
|
hook_completion (NULL, "layouts_names",
|
||||||
N_("names of layouts"),
|
N_("names of layouts"),
|
||||||
&completion_list_add_layouts_names_cb, NULL, NULL);
|
&completion_list_add_layouts_names_cb, NULL, NULL);
|
||||||
hook_completion (NULL, "theme_themes_all",
|
|
||||||
N_("names of themes (built-ins + user files + backups)"),
|
|
||||||
&completion_list_add_theme_themes_all_cb, NULL, NULL);
|
|
||||||
hook_completion (NULL, "theme_themes_user",
|
|
||||||
N_("names of user theme files (excludes built-ins and backups)"),
|
|
||||||
&completion_list_add_theme_themes_user_cb, NULL, NULL);
|
|
||||||
hook_completion (NULL, "theme_themes_files",
|
|
||||||
N_("names of theme files on disk (user files + backups, "
|
|
||||||
"no built-ins)"),
|
|
||||||
&completion_list_add_theme_themes_files_cb, NULL, NULL);
|
|
||||||
hook_completion (NULL, "secured_data",
|
hook_completion (NULL, "secured_data",
|
||||||
N_("names of secured data (file sec.conf, section data)"),
|
N_("names of secured data (file sec.conf, section data)"),
|
||||||
&completion_list_add_secured_data_cb, NULL, NULL);
|
&completion_list_add_secured_data_cb, NULL, NULL);
|
||||||
|
|||||||
+92
-78
@@ -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"
|
||||||
@@ -648,7 +647,6 @@ config_file_option_malloc (void)
|
|||||||
new_option->name = NULL;
|
new_option->name = NULL;
|
||||||
new_option->parent_name = NULL;
|
new_option->parent_name = NULL;
|
||||||
new_option->type = 0;
|
new_option->type = 0;
|
||||||
new_option->themable = 0;
|
|
||||||
new_option->description = NULL;
|
new_option->description = NULL;
|
||||||
new_option->string_values = NULL;
|
new_option->string_values = NULL;
|
||||||
new_option->min = 0;
|
new_option->min = 0;
|
||||||
@@ -705,37 +703,17 @@ 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, themable;
|
int var_type, int_value, argc, i, index_value;
|
||||||
const char *pos, *ptr_type;
|
long number;
|
||||||
char *option_name, *parent_name, *type_name;
|
char *error, *pos, *option_name, *parent_name;
|
||||||
|
|
||||||
new_option = NULL;
|
new_option = NULL;
|
||||||
option_name = NULL;
|
option_name = NULL;
|
||||||
parent_name = NULL;
|
parent_name = NULL;
|
||||||
type_name = NULL;
|
|
||||||
themable = 0;
|
|
||||||
|
|
||||||
if (!name || !type)
|
if (!name || !type)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/*
|
|
||||||
* extract optional "|themable" suffix from type
|
|
||||||
* (e.g.: "string|themable" for a string option that contains color names)
|
|
||||||
*/
|
|
||||||
pos = strchr (type, '|');
|
|
||||||
if (pos && (strcmp (pos, "|themable") == 0))
|
|
||||||
{
|
|
||||||
type_name = string_strndup (type, pos - type);
|
|
||||||
if (!type_name)
|
|
||||||
goto error;
|
|
||||||
ptr_type = type_name;
|
|
||||||
themable = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ptr_type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
pos = strstr (name, " << ");
|
pos = strstr (name, " << ");
|
||||||
if (pos)
|
if (pos)
|
||||||
{
|
{
|
||||||
@@ -756,7 +734,7 @@ config_file_new_option (struct t_config_file *config_file,
|
|||||||
var_type = -1;
|
var_type = -1;
|
||||||
for (i = 0; i < CONFIG_NUM_OPTION_TYPES; i++)
|
for (i = 0; i < CONFIG_NUM_OPTION_TYPES; i++)
|
||||||
{
|
{
|
||||||
if (strcmp (ptr_type, config_option_type_string[i]) == 0)
|
if (strcmp (type, config_option_type_string[i]) == 0)
|
||||||
{
|
{
|
||||||
var_type = i;
|
var_type = i;
|
||||||
break;
|
break;
|
||||||
@@ -766,14 +744,10 @@ config_file_new_option (struct t_config_file *config_file,
|
|||||||
{
|
{
|
||||||
gui_chat_printf (NULL, "%sUnknown option type \"%s\"",
|
gui_chat_printf (NULL, "%sUnknown option type \"%s\"",
|
||||||
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
|
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
|
||||||
ptr_type);
|
type);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* color options are always themable */
|
|
||||||
if (var_type == CONFIG_OPTION_TYPE_COLOR)
|
|
||||||
themable = 1;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* compatibility with versions < 4.1.0: force enum type for an integer
|
* compatibility with versions < 4.1.0: force enum type for an integer
|
||||||
* with string values
|
* with string values
|
||||||
@@ -810,7 +784,6 @@ config_file_new_option (struct t_config_file *config_file,
|
|||||||
goto error;
|
goto error;
|
||||||
new_option->parent_name = (parent_name) ? strdup (parent_name) : NULL;
|
new_option->parent_name = (parent_name) ? strdup (parent_name) : NULL;
|
||||||
new_option->type = var_type;
|
new_option->type = var_type;
|
||||||
new_option->themable = themable;
|
|
||||||
if (description)
|
if (description)
|
||||||
{
|
{
|
||||||
new_option->description = strdup (description);
|
new_option->description = strdup (description);
|
||||||
@@ -845,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;
|
||||||
@@ -858,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;
|
||||||
@@ -996,7 +973,6 @@ error:
|
|||||||
end:
|
end:
|
||||||
free (option_name);
|
free (option_name);
|
||||||
free (parent_name);
|
free (parent_name);
|
||||||
free (type_name);
|
|
||||||
return new_option;
|
return new_option;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1123,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;
|
||||||
@@ -1429,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;
|
||||||
@@ -1516,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;
|
||||||
@@ -1525,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;
|
||||||
@@ -1534,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;
|
||||||
@@ -1587,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),
|
||||||
@@ -1597,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),
|
||||||
@@ -1612,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;
|
||||||
@@ -1641,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) %
|
||||||
@@ -1650,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) %
|
||||||
@@ -1670,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;
|
||||||
@@ -1893,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;
|
||||||
@@ -1968,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;
|
||||||
|
if (value_int <= option->max)
|
||||||
new_value_ok = 1;
|
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;
|
||||||
|
if (value_int >= option->min)
|
||||||
new_value_ok = 1;
|
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;
|
||||||
@@ -2039,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),
|
||||||
@@ -2049,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),
|
||||||
@@ -2064,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;
|
||||||
@@ -2093,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) %
|
||||||
@@ -2102,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) %
|
||||||
@@ -2122,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;
|
||||||
@@ -2467,8 +2482,6 @@ config_file_option_get_pointer (struct t_config_option *option,
|
|||||||
return option->parent_name;
|
return option->parent_name;
|
||||||
else if (strcmp (property, "type") == 0)
|
else if (strcmp (property, "type") == 0)
|
||||||
return &option->type;
|
return &option->type;
|
||||||
else if (strcmp (property, "themable") == 0)
|
|
||||||
return &option->themable;
|
|
||||||
else if (strcmp (property, "description") == 0)
|
else if (strcmp (property, "description") == 0)
|
||||||
return option->description;
|
return option->description;
|
||||||
else if (strcmp (property, "string_values") == 0)
|
else if (strcmp (property, "string_values") == 0)
|
||||||
@@ -2584,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;
|
||||||
|
|
||||||
@@ -3143,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;
|
||||||
|
|
||||||
@@ -3294,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)
|
||||||
{
|
{
|
||||||
@@ -3367,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -4278,7 +4296,6 @@ config_file_hdata_config_option_cb (const void *pointer, void *data,
|
|||||||
HDATA_VAR(struct t_config_option, name, STRING, 0, NULL, NULL);
|
HDATA_VAR(struct t_config_option, name, STRING, 0, NULL, NULL);
|
||||||
HDATA_VAR(struct t_config_option, parent_name, STRING, 0, NULL, NULL);
|
HDATA_VAR(struct t_config_option, parent_name, STRING, 0, NULL, NULL);
|
||||||
HDATA_VAR(struct t_config_option, type, INTEGER, 0, NULL, NULL);
|
HDATA_VAR(struct t_config_option, type, INTEGER, 0, NULL, NULL);
|
||||||
HDATA_VAR(struct t_config_option, themable, INTEGER, 0, NULL, NULL);
|
|
||||||
HDATA_VAR(struct t_config_option, description, STRING, 0, NULL, NULL);
|
HDATA_VAR(struct t_config_option, description, STRING, 0, NULL, NULL);
|
||||||
HDATA_VAR(struct t_config_option, string_values, STRING, 0, "*,*", NULL);
|
HDATA_VAR(struct t_config_option, string_values, STRING, 0, "*,*", NULL);
|
||||||
HDATA_VAR(struct t_config_option, min, INTEGER, 0, NULL, NULL);
|
HDATA_VAR(struct t_config_option, min, INTEGER, 0, NULL, NULL);
|
||||||
@@ -4391,8 +4408,6 @@ config_file_add_option_to_infolist (struct t_infolist *infolist,
|
|||||||
{
|
{
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
if (!infolist_new_var_integer (ptr_item, "themable", option->themable))
|
|
||||||
goto error;
|
|
||||||
if (option->value)
|
if (option->value)
|
||||||
{
|
{
|
||||||
value = config_file_option_value_to_string (option, 0, 0, 0);
|
value = config_file_option_value_to_string (option, 0, 0, 0);
|
||||||
@@ -4557,7 +4572,6 @@ config_file_print_log (void)
|
|||||||
log_printf (" name . . . . . . . . . . . . : '%s'", ptr_option->name);
|
log_printf (" name . . . . . . . . . . . . : '%s'", ptr_option->name);
|
||||||
log_printf (" parent_name. . . . . . . . . : '%s'", ptr_option->parent_name);
|
log_printf (" parent_name. . . . . . . . . : '%s'", ptr_option->parent_name);
|
||||||
log_printf (" type . . . . . . . . . . . . : %d", ptr_option->type);
|
log_printf (" type . . . . . . . . . . . . : %d", ptr_option->type);
|
||||||
log_printf (" themable . . . . . . . . . . : %d", ptr_option->themable);
|
|
||||||
log_printf (" description. . . . . . . . . : '%s'", ptr_option->description);
|
log_printf (" description. . . . . . . . . : '%s'", ptr_option->description);
|
||||||
log_printf (" string_values. . . . . . . . : %p", ptr_option->string_values);
|
log_printf (" string_values. . . . . . . . : %p", ptr_option->string_values);
|
||||||
log_printf (" min. . . . . . . . . . . . . : %d", ptr_option->min);
|
log_printf (" min. . . . . . . . . . . . . : %d", ptr_option->min);
|
||||||
|
|||||||
@@ -154,8 +154,6 @@ struct t_config_option
|
|||||||
char *parent_name; /* parent name (to inherit the */
|
char *parent_name; /* parent name (to inherit the */
|
||||||
/* value from another option) */
|
/* value from another option) */
|
||||||
enum t_config_option_type type; /* type */
|
enum t_config_option_type type; /* type */
|
||||||
int themable; /* 1 if option is themable */
|
|
||||||
/* (color, or string with color) */
|
|
||||||
char *description; /* description */
|
char *description; /* description */
|
||||||
char **string_values; /* allowed string values */
|
char **string_values; /* allowed string values */
|
||||||
int min, max; /* min and max for value */
|
int min, max; /* min and max for value */
|
||||||
@@ -288,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);
|
||||||
|
|||||||
+49
-58
@@ -50,8 +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-theme.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"
|
||||||
@@ -223,8 +221,6 @@ struct t_config_option *config_look_separator_horizontal = NULL;
|
|||||||
struct t_config_option *config_look_separator_vertical = NULL;
|
struct t_config_option *config_look_separator_vertical = NULL;
|
||||||
struct t_config_option *config_look_tab_whitespace_char = NULL;
|
struct t_config_option *config_look_tab_whitespace_char = NULL;
|
||||||
struct t_config_option *config_look_tab_width = NULL;
|
struct t_config_option *config_look_tab_width = NULL;
|
||||||
struct t_config_option *config_look_theme = NULL;
|
|
||||||
struct t_config_option *config_look_theme_backup = NULL;
|
|
||||||
struct t_config_option *config_look_time_format = NULL;
|
struct t_config_option *config_look_time_format = NULL;
|
||||||
struct t_config_option *config_look_whitespace_char = NULL;
|
struct t_config_option *config_look_whitespace_char = NULL;
|
||||||
struct t_config_option *config_look_window_auto_zoom = NULL;
|
struct t_config_option *config_look_window_auto_zoom = NULL;
|
||||||
@@ -1384,7 +1380,7 @@ config_change_color (const void *pointer, void *data,
|
|||||||
(void) data;
|
(void) data;
|
||||||
(void) option;
|
(void) option;
|
||||||
|
|
||||||
if (gui_init_ok && !theme_applying)
|
if (gui_init_ok)
|
||||||
{
|
{
|
||||||
gui_color_init_weechat ();
|
gui_color_init_weechat ();
|
||||||
gui_window_ask_refresh (1);
|
gui_window_ask_refresh (1);
|
||||||
@@ -1712,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" },
|
||||||
@@ -1742,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 */
|
||||||
@@ -2151,15 +2147,20 @@ 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));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Callback called when an option is created in section "palette".
|
* Callback called when an option is created in section "palette".
|
||||||
@@ -2173,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 */
|
||||||
@@ -2181,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)
|
||||||
{
|
{
|
||||||
@@ -2239,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 */
|
||||||
@@ -2247,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);
|
||||||
@@ -2265,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;
|
||||||
|
|
||||||
@@ -2345,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;
|
||||||
|
|
||||||
@@ -2426,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;
|
||||||
|
|
||||||
@@ -2517,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;
|
||||||
|
|
||||||
@@ -2578,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);
|
||||||
@@ -2595,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);
|
||||||
@@ -3453,7 +3465,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
config_look_buffer_time_format = config_file_new_option (
|
config_look_buffer_time_format = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"buffer_time_format", "string|themable",
|
"buffer_time_format", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("time format for each line displayed in buffers (see man "
|
N_("time format for each line displayed in buffers (see man "
|
||||||
"strftime for date/time specifiers, extra specifiers are "
|
"strftime for date/time specifiers, extra specifiers are "
|
||||||
@@ -3477,7 +3489,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_buffer_time_same = config_file_new_option (
|
config_look_buffer_time_same = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"buffer_time_same", "string|themable",
|
"buffer_time_same", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("time displayed for a message with same time as previous message: "
|
N_("time displayed for a message with same time as previous message: "
|
||||||
"use a space \" \" to hide time, another string to display this "
|
"use a space \" \" to hide time, another string to display this "
|
||||||
@@ -3644,7 +3656,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_day_change_message_1date = config_file_new_option (
|
config_look_day_change_message_1date = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"day_change_message_1date", "string|themable",
|
"day_change_message_1date", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("message displayed when the day has changed, with one date "
|
N_("message displayed when the day has changed, with one date "
|
||||||
"displayed (for example at beginning of buffer) (see man "
|
"displayed (for example at beginning of buffer) (see man "
|
||||||
@@ -3657,7 +3669,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_day_change_message_2dates = config_file_new_option (
|
config_look_day_change_message_2dates = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"day_change_message_2dates", "string|themable",
|
"day_change_message_2dates", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("message displayed when the day has changed, with two dates "
|
N_("message displayed when the day has changed, with two dates "
|
||||||
"displayed (between two messages); the second date specifiers "
|
"displayed (between two messages); the second date specifiers "
|
||||||
@@ -3769,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);
|
||||||
@@ -3974,7 +3985,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_item_time_format = config_file_new_option (
|
config_look_item_time_format = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"item_time_format", "string|themable",
|
"item_time_format", "string",
|
||||||
N_("time format for \"time\" bar item (see man strftime for "
|
N_("time format for \"time\" bar item (see man strftime for "
|
||||||
"date/time specifiers) (note: content is evaluated, so you can "
|
"date/time specifiers) (note: content is evaluated, so you can "
|
||||||
"use colors with format \"${color:xxx}\", see /help eval)"),
|
"use colors with format \"${color:xxx}\", see /help eval)"),
|
||||||
@@ -4029,7 +4040,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_nick_color_force = config_file_new_option (
|
config_look_nick_color_force = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"nick_color_force", "string|themable",
|
"nick_color_force", "string",
|
||||||
N_("force color for some nicks: hash computed with nickname "
|
N_("force color for some nicks: hash computed with nickname "
|
||||||
"to find color will not be used for these nicks (format is: "
|
"to find color will not be used for these nicks (format is: "
|
||||||
"\"nick1:color1;nick2:color2\"); look up for nicks is with "
|
"\"nick1:color1;nick2:color2\"); look up for nicks is with "
|
||||||
@@ -4121,7 +4132,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
config_look_prefix[GUI_CHAT_PREFIX_ERROR] = config_file_new_option (
|
config_look_prefix[GUI_CHAT_PREFIX_ERROR] = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"prefix_error", "string|themable",
|
"prefix_error", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("prefix for error messages (note: content is evaluated, so you "
|
N_("prefix for error messages (note: content is evaluated, so you "
|
||||||
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
||||||
@@ -4131,7 +4142,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_prefix[GUI_CHAT_PREFIX_NETWORK] = config_file_new_option (
|
config_look_prefix[GUI_CHAT_PREFIX_NETWORK] = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"prefix_network", "string|themable",
|
"prefix_network", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("prefix for network messages (note: content is evaluated, so you "
|
N_("prefix for network messages (note: content is evaluated, so you "
|
||||||
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
||||||
@@ -4141,7 +4152,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_prefix[GUI_CHAT_PREFIX_ACTION] = config_file_new_option (
|
config_look_prefix[GUI_CHAT_PREFIX_ACTION] = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"prefix_action", "string|themable",
|
"prefix_action", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("prefix for action messages (note: content is evaluated, so you "
|
N_("prefix for action messages (note: content is evaluated, so you "
|
||||||
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
||||||
@@ -4151,7 +4162,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_prefix[GUI_CHAT_PREFIX_JOIN] = config_file_new_option (
|
config_look_prefix[GUI_CHAT_PREFIX_JOIN] = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"prefix_join", "string|themable",
|
"prefix_join", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("prefix for join messages (note: content is evaluated, so you "
|
N_("prefix for join messages (note: content is evaluated, so you "
|
||||||
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
||||||
@@ -4161,7 +4172,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_prefix[GUI_CHAT_PREFIX_QUIT] = config_file_new_option (
|
config_look_prefix[GUI_CHAT_PREFIX_QUIT] = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"prefix_quit", "string|themable",
|
"prefix_quit", "string",
|
||||||
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
/* TRANSLATORS: string "${color:xxx}" must NOT be translated */
|
||||||
N_("prefix for quit messages (note: content is evaluated, so you "
|
N_("prefix for quit messages (note: content is evaluated, so you "
|
||||||
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
"can use colors with format \"${color:xxx}\", see /help eval)"),
|
||||||
@@ -4430,26 +4441,6 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
&config_change_tab, NULL, NULL,
|
&config_change_tab, NULL, NULL,
|
||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_look_theme = config_file_new_option (
|
|
||||||
weechat_config_file, weechat_config_section_look,
|
|
||||||
"theme", "string",
|
|
||||||
N_("name of the last theme applied with command /theme "
|
|
||||||
"(set automatically, do not change manually); informational "
|
|
||||||
"only, the theme is not re-applied at startup"),
|
|
||||||
NULL, 0, 0, "", NULL, 0,
|
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
|
||||||
config_look_theme_backup = config_file_new_option (
|
|
||||||
weechat_config_file, weechat_config_section_look,
|
|
||||||
"theme_backup", "boolean",
|
|
||||||
N_("create a backup theme file with the current themable "
|
|
||||||
"options before applying a theme with command /theme; if "
|
|
||||||
"the backup file cannot be written, the apply is aborted "
|
|
||||||
"(no option is changed); the backup file is written to "
|
|
||||||
"directory \"themes\" inside the WeeChat configuration "
|
|
||||||
"directory and can be restored with: /theme apply "
|
|
||||||
"backup-<timestamp>"),
|
|
||||||
NULL, 0, 0, "on", NULL, 0,
|
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
|
||||||
config_look_time_format = config_file_new_option (
|
config_look_time_format = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_look,
|
weechat_config_file, weechat_config_section_look,
|
||||||
"time_format", "string",
|
"time_format", "string",
|
||||||
@@ -4670,7 +4661,7 @@ config_weechat_init_options (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
config_color_chat_nick_colors = config_file_new_option (
|
config_color_chat_nick_colors = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_color,
|
weechat_config_file, weechat_config_section_color,
|
||||||
"chat_nick_colors", "string|themable",
|
"chat_nick_colors", "string",
|
||||||
/* TRANSLATORS: please do not translate "lightred:blue" */
|
/* TRANSLATORS: please do not translate "lightred:blue" */
|
||||||
N_("text color for nicks (comma separated list of colors, "
|
N_("text color for nicks (comma separated list of colors, "
|
||||||
"background is allowed with format: \"fg:bg\", for example: "
|
"background is allowed with format: \"fg:bg\", for example: "
|
||||||
@@ -4941,7 +4932,7 @@ config_weechat_init_options (void)
|
|||||||
/* eval syntax highlighting colors (for "${raw_hl:xxx}" and "${hl:xxx}") */
|
/* eval syntax highlighting colors (for "${raw_hl:xxx}" and "${hl:xxx}") */
|
||||||
config_color_eval_syntax_colors = config_file_new_option (
|
config_color_eval_syntax_colors = config_file_new_option (
|
||||||
weechat_config_file, weechat_config_section_color,
|
weechat_config_file, weechat_config_section_color,
|
||||||
"eval_syntax_colors", "string|themable",
|
"eval_syntax_colors", "string",
|
||||||
/* TRANSLATORS: please do not translate "lightred:blue" */
|
/* TRANSLATORS: please do not translate "lightred:blue" */
|
||||||
N_("text color for syntax highlighting in evaluated strings, "
|
N_("text color for syntax highlighting in evaluated strings, "
|
||||||
"with \"${raw_hl:...}\" and \"${hl:...}\" (comma separated "
|
"with \"${raw_hl:...}\" and \"${hl:...}\" (comma separated "
|
||||||
|
|||||||
@@ -277,8 +277,6 @@ extern struct t_config_option *config_look_separator_horizontal;
|
|||||||
extern struct t_config_option *config_look_separator_vertical;
|
extern struct t_config_option *config_look_separator_vertical;
|
||||||
extern struct t_config_option *config_look_tab_whitespace_char;
|
extern struct t_config_option *config_look_tab_whitespace_char;
|
||||||
extern struct t_config_option *config_look_tab_width;
|
extern struct t_config_option *config_look_tab_width;
|
||||||
extern struct t_config_option *config_look_theme;
|
|
||||||
extern struct t_config_option *config_look_theme_backup;
|
|
||||||
extern struct t_config_option *config_look_time_format;
|
extern struct t_config_option *config_look_time_format;
|
||||||
extern struct t_config_option *config_look_whitespace_char;
|
extern struct t_config_option *config_look_whitespace_char;
|
||||||
extern struct t_config_option *config_look_window_auto_zoom;
|
extern struct t_config_option *config_look_window_auto_zoom;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
+57
-46
@@ -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,21 +2224,18 @@ 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;
|
string_compare = 1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if (!string_compare)
|
|
||||||
{
|
{
|
||||||
errno = 0;
|
|
||||||
error = NULL;
|
|
||||||
value2 = strtod (expr2, &error);
|
value2 = strtod (expr2, &error);
|
||||||
if (!error || error[0] || (errno == ERANGE))
|
if (!error || error[0])
|
||||||
string_compare = 1;
|
string_compare = 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (string_compare)
|
if (string_compare)
|
||||||
rc = strcmp (expr1, expr2);
|
rc = strcmp (expr1, expr2);
|
||||||
@@ -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
@@ -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
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|||||||
+11
-24
@@ -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"
|
||||||
|
|
||||||
@@ -582,13 +581,7 @@ network_pass_socks5proxy (struct t_proxy *proxy, int sock, const char *address,
|
|||||||
int port)
|
int port)
|
||||||
{
|
{
|
||||||
struct t_network_socks5 socks5;
|
struct t_network_socks5 socks5;
|
||||||
/*
|
unsigned char buffer[288];
|
||||||
* buffer must be large enough for the username/password authentication
|
|
||||||
* request, which is the longest message sent/received here; according to
|
|
||||||
* RFC 1929 it is: version (1) + username length (1) + username (max 255)
|
|
||||||
* + password length (1) + password (max 255)
|
|
||||||
*/
|
|
||||||
unsigned char buffer[2 + 255 + 1 + 255];
|
|
||||||
int username_len, password_len, addr_len, addr_buffer_len;
|
int username_len, password_len, addr_len, addr_buffer_len;
|
||||||
unsigned char *addr_buffer;
|
unsigned char *addr_buffer;
|
||||||
char *username, *password;
|
char *username, *password;
|
||||||
@@ -637,18 +630,6 @@ network_pass_socks5proxy (struct t_proxy *proxy, int sock, const char *address,
|
|||||||
username_len = strlen (username);
|
username_len = strlen (username);
|
||||||
password_len = strlen (password);
|
password_len = strlen (password);
|
||||||
|
|
||||||
/*
|
|
||||||
* username and password length are each stored on a single byte
|
|
||||||
* (RFC 1929), so they cannot exceed 255 bytes: reject longer values,
|
|
||||||
* otherwise the memcpy calls below would overflow the buffer
|
|
||||||
*/
|
|
||||||
if ((username_len > 255) || (password_len > 255))
|
|
||||||
{
|
|
||||||
free (username);
|
|
||||||
free (password);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* make username/password buffer */
|
/* make username/password buffer */
|
||||||
buffer[0] = 1;
|
buffer[0] = 1;
|
||||||
buffer[1] = (unsigned char) username_len;
|
buffer[1] = (unsigned char) username_len;
|
||||||
@@ -1589,9 +1570,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 +1603,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 +1740,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
@@ -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
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,129 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This file is part of WeeChat, the extensible chat client.
|
|
||||||
*
|
|
||||||
* WeeChat is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* WeeChat is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Built-in theme registrations (core contribution only). */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "weechat.h"
|
|
||||||
#include "core-hashtable.h"
|
|
||||||
#include "core-theme.h"
|
|
||||||
#include "../plugins/weechat-plugin.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Core overrides for the "light" theme: option values tuned for a
|
|
||||||
* light-background terminal. Order is by full option name to keep diffs
|
|
||||||
* stable; the list ends with a NULL sentinel.
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct t_theme_builtin_entry
|
|
||||||
{
|
|
||||||
const char *option;
|
|
||||||
const char *value;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct t_theme_builtin_entry theme_builtin_light_core[] =
|
|
||||||
{
|
|
||||||
{ "weechat.bar.status.color_bg", "254" },
|
|
||||||
{ "weechat.bar.status.color_bg_inactive", "default" },
|
|
||||||
{ "weechat.bar.title.color_bg", "254" },
|
|
||||||
{ "weechat.bar.title.color_bg_inactive", "default" },
|
|
||||||
{ "weechat.color.bar_more", "magenta" },
|
|
||||||
{ "weechat.color.chat_buffer", "default" },
|
|
||||||
{ "weechat.color.chat_channel", "default" },
|
|
||||||
{ "weechat.color.chat_nick", "cyan" },
|
|
||||||
{ "weechat.color.chat_nick_colors",
|
|
||||||
"red,green,brown,blue,magenta,cyan,lightred,lightblue,lightmagenta,"
|
|
||||||
"20,28,52,57,58,61,63,88,94,128,166,202" },
|
|
||||||
{ "weechat.color.chat_nick_self", "default" },
|
|
||||||
{ "weechat.color.chat_prefix_action", "default" },
|
|
||||||
{ "weechat.color.chat_prefix_error", "94" },
|
|
||||||
{ "weechat.color.chat_prefix_join", "green" },
|
|
||||||
{ "weechat.color.chat_prefix_more", "magenta" },
|
|
||||||
{ "weechat.color.chat_prefix_quit", "red" },
|
|
||||||
{ "weechat.color.chat_prefix_suffix", "251" },
|
|
||||||
{ "weechat.color.chat_server", "94" },
|
|
||||||
{ "weechat.color.chat_text_found_bg", "magenta" },
|
|
||||||
{ "weechat.color.chat_time_delimiters", "94" },
|
|
||||||
{ "weechat.color.eval_syntax_colors",
|
|
||||||
"green,red,blue,magenta,94,cyan" },
|
|
||||||
{ "weechat.color.input_actions", "28" },
|
|
||||||
{ "weechat.color.item_away", "brown" },
|
|
||||||
{ "weechat.color.separator", "251" },
|
|
||||||
{ "weechat.color.status_count_msg", "94" },
|
|
||||||
{ "weechat.color.status_data_highlight", "93" },
|
|
||||||
{ "weechat.color.status_data_msg", "94" },
|
|
||||||
{ "weechat.color.status_data_private", "green" },
|
|
||||||
{ "weechat.color.status_more", "94" },
|
|
||||||
{ "weechat.color.status_mouse", "green" },
|
|
||||||
{ "weechat.color.status_name", "default" },
|
|
||||||
{ "weechat.color.status_name_insecure", "202" },
|
|
||||||
{ "weechat.color.status_name_tls", "default" },
|
|
||||||
{ "weechat.color.status_number", "28" },
|
|
||||||
{ NULL, NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Builds a hashtable of overrides from a NULL-terminated table and
|
|
||||||
* registers it under the given theme name.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
theme_builtin_register_entries (const char *name,
|
|
||||||
const struct t_theme_builtin_entry *entries)
|
|
||||||
{
|
|
||||||
struct t_hashtable *overrides;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (!name || !entries)
|
|
||||||
return;
|
|
||||||
|
|
||||||
overrides = hashtable_new (32,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (!overrides)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (i = 0; entries[i].option; i++)
|
|
||||||
hashtable_set (overrides, entries[i].option, entries[i].value);
|
|
||||||
|
|
||||||
theme_register (NULL, NULL, name, overrides);
|
|
||||||
|
|
||||||
hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Registers all built-in themes contributed by core. Called once from
|
|
||||||
* theme_init; plugins/scripts add their own contributions later via
|
|
||||||
* weechat_theme_register.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
theme_builtin_init (void)
|
|
||||||
{
|
|
||||||
theme_builtin_register_entries ("light", theme_builtin_light_core);
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,92 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This file is part of WeeChat, the extensible chat client.
|
|
||||||
*
|
|
||||||
* WeeChat is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* WeeChat is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef WEECHAT_THEME_H
|
|
||||||
#define WEECHAT_THEME_H
|
|
||||||
|
|
||||||
struct t_hashtable;
|
|
||||||
struct t_arraylist;
|
|
||||||
struct t_weechat_plugin;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A contribution is one (owner, overrides) pair attached to a theme.
|
|
||||||
* "owner" is identified by a (plugin, script) pair:
|
|
||||||
* - plugin == NULL && script == NULL => core
|
|
||||||
* - plugin != NULL && script == NULL => plugin (e.g. irc, fset)
|
|
||||||
* - plugin != NULL && script != NULL => individual script under that
|
|
||||||
* script-language plugin
|
|
||||||
*/
|
|
||||||
struct t_theme_contribution
|
|
||||||
{
|
|
||||||
struct t_weechat_plugin *plugin;
|
|
||||||
const void *script;
|
|
||||||
struct t_hashtable *overrides; /* full_option_name -> value */
|
|
||||||
struct t_theme_contribution *prev_contribution;
|
|
||||||
struct t_theme_contribution *next_contribution;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct t_theme
|
|
||||||
{
|
|
||||||
char *name; /* "light", "solarized", ... */
|
|
||||||
char *description; /* free-form text */
|
|
||||||
char *date; /* "YYYY-MM-DD HH:MM:SS" */
|
|
||||||
char *weechat_version; /* version at registration time */
|
|
||||||
struct t_theme_contribution *contributions;
|
|
||||||
struct t_theme_contribution *last_contribution;
|
|
||||||
struct t_theme *prev_theme;
|
|
||||||
struct t_theme *next_theme;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern struct t_theme *themes;
|
|
||||||
extern struct t_theme *last_theme;
|
|
||||||
extern int theme_applying; /* gate for config_change_color */
|
|
||||||
|
|
||||||
extern struct t_theme *theme_search (const char *name);
|
|
||||||
extern struct t_theme *theme_register (struct t_weechat_plugin *plugin,
|
|
||||||
const void *script,
|
|
||||||
const char *name,
|
|
||||||
struct t_hashtable *overrides);
|
|
||||||
extern int theme_overrides_count (struct t_theme *theme);
|
|
||||||
extern const char *theme_get_override (struct t_theme *theme,
|
|
||||||
const char *option_name);
|
|
||||||
extern struct t_arraylist *theme_list (void);
|
|
||||||
extern int theme_apply (const char *name);
|
|
||||||
extern int theme_reset (void);
|
|
||||||
extern int theme_save (const char *name);
|
|
||||||
extern int theme_rename (const char *old_name, const char *new_name);
|
|
||||||
extern int theme_delete (const char *name);
|
|
||||||
extern char *theme_make_backup (void);
|
|
||||||
extern char *theme_user_file_path (const char *name);
|
|
||||||
extern struct t_theme *theme_file_parse (const char *path);
|
|
||||||
extern void theme_free (struct t_theme *theme);
|
|
||||||
|
|
||||||
/* lifecycle: drop all contributions owned by a plugin or script */
|
|
||||||
extern void theme_unregister_plugin (struct t_weechat_plugin *plugin);
|
|
||||||
extern void theme_unregister_script (struct t_weechat_plugin *plugin,
|
|
||||||
const void *script);
|
|
||||||
|
|
||||||
extern void theme_init (void);
|
|
||||||
extern void theme_end (void);
|
|
||||||
|
|
||||||
/* implemented in core-theme-builtin.c */
|
|
||||||
extern void theme_builtin_init (void);
|
|
||||||
|
|
||||||
#endif /* WEECHAT_THEME_H */
|
|
||||||
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
+13
-40
@@ -75,7 +75,6 @@
|
|||||||
#include "core-secure-config.h"
|
#include "core-secure-config.h"
|
||||||
#include "core-signal.h"
|
#include "core-signal.h"
|
||||||
#include "core-string.h"
|
#include "core-string.h"
|
||||||
#include "core-theme.h"
|
|
||||||
#include "core-upgrade.h"
|
#include "core-upgrade.h"
|
||||||
#include "core-url.h"
|
#include "core-url.h"
|
||||||
#include "core-utf8.h"
|
#include "core-utf8.h"
|
||||||
@@ -98,7 +97,6 @@ char *weechat_argv0 = NULL; /* WeeChat binary file name (argv[0])*/
|
|||||||
int weechat_upgrading = 0; /* =1 if WeeChat is upgrading */
|
int weechat_upgrading = 0; /* =1 if WeeChat is upgrading */
|
||||||
int weechat_first_start = 0; /* first start of WeeChat? */
|
int weechat_first_start = 0; /* first start of WeeChat? */
|
||||||
time_t weechat_first_start_time = 0; /* start time (used by /uptime cmd) */
|
time_t weechat_first_start_time = 0; /* start time (used by /uptime cmd) */
|
||||||
int weechat_term_theme_light = 0; /* 1 if light theme detected */
|
|
||||||
int weechat_upgrade_count = 0; /* number of /upgrade done */
|
int weechat_upgrade_count = 0; /* number of /upgrade done */
|
||||||
struct timeval weechat_current_start_timeval; /* start time used to display */
|
struct timeval weechat_current_start_timeval; /* start time used to display */
|
||||||
/* duration of /upgrade */
|
/* duration of /upgrade */
|
||||||
@@ -184,34 +182,22 @@ weechat_startup_message (void)
|
|||||||
if (weechat_first_start)
|
if (weechat_first_start)
|
||||||
{
|
{
|
||||||
/* message on first run (when weechat.conf is created) */
|
/* message on first run (when weechat.conf is created) */
|
||||||
gui_chat_printf (NULL, _("Welcome to WeeChat!"));
|
gui_chat_printf (NULL, "");
|
||||||
gui_chat_printf (
|
gui_chat_printf (
|
||||||
NULL,
|
NULL,
|
||||||
_("If you are discovering WeeChat, it is recommended to "
|
_("Welcome to WeeChat!\n"
|
||||||
"read at least the quickstart guide, and the user's guide if "
|
"\n"
|
||||||
"you have some time; they explain main WeeChat concepts."));
|
"If you are discovering WeeChat, it is recommended to read at "
|
||||||
gui_chat_printf (
|
"least the quickstart guide, and the user's guide if you have "
|
||||||
NULL,
|
"some time; they explain main WeeChat concepts.\n"
|
||||||
_("All WeeChat docs are available at: %s"),
|
"All WeeChat docs are available at: https://weechat.org/doc/\n"
|
||||||
WEECHAT_WEBSITE_DOC);
|
"\n"
|
||||||
gui_chat_printf (
|
"Moreover, there is inline help with /help on all commands and "
|
||||||
NULL,
|
"options (use Tab key to complete the name).\n"
|
||||||
_("Moreover, there is inline help with /help on all commands and "
|
"The command /fset can help to customize WeeChat.\n"
|
||||||
"options (use Tab key to complete the name)."));
|
"\n"
|
||||||
gui_chat_printf (
|
"You can add and connect to an IRC server with /server and "
|
||||||
NULL,
|
|
||||||
_("The command /fset can help to customize WeeChat."));
|
|
||||||
gui_chat_printf (
|
|
||||||
NULL,
|
|
||||||
_("You can add and connect to an IRC server with /server and "
|
|
||||||
"/connect commands (see /help server)."));
|
"/connect commands (see /help server)."));
|
||||||
if (weechat_term_theme_light)
|
|
||||||
{
|
|
||||||
gui_chat_printf (
|
|
||||||
NULL,
|
|
||||||
_("The \"light\" theme will be automatically applied. "
|
|
||||||
"Use /theme reset to switch back to the default dark theme."));
|
|
||||||
}
|
|
||||||
gui_chat_printf (NULL, "");
|
gui_chat_printf (NULL, "");
|
||||||
gui_chat_printf (NULL, "---");
|
gui_chat_printf (NULL, "---");
|
||||||
gui_chat_printf (NULL, "");
|
gui_chat_printf (NULL, "");
|
||||||
@@ -382,9 +368,6 @@ weechat_init (int argc, char *argv[], void (*gui_init_cb)(void))
|
|||||||
* weechat_current_start_timeval.tv_usec)
|
* weechat_current_start_timeval.tv_usec)
|
||||||
^ getpid ());
|
^ getpid ());
|
||||||
|
|
||||||
/* detect the terminal theme, before initializing the GUI */
|
|
||||||
weechat_term_theme_light = gui_term_theme_is_light ();
|
|
||||||
|
|
||||||
weeurl_init (); /* initialize URL */
|
weeurl_init (); /* initialize URL */
|
||||||
string_init (); /* initialize string */
|
string_init (); /* initialize string */
|
||||||
signal_init (); /* initialize signals */
|
signal_init (); /* initialize signals */
|
||||||
@@ -401,8 +384,6 @@ weechat_init (int argc, char *argv[], void (*gui_init_cb)(void))
|
|||||||
weechat_shutdown (EXIT_FAILURE, 0);
|
weechat_shutdown (EXIT_FAILURE, 0);
|
||||||
if (!secure_config_init ()) /* init secured data options (sec.*)*/
|
if (!secure_config_init ()) /* init secured data options (sec.*)*/
|
||||||
weechat_shutdown (EXIT_FAILURE, 0);
|
weechat_shutdown (EXIT_FAILURE, 0);
|
||||||
theme_init (); /* initialize theme registry */
|
|
||||||
theme_builtin_init (); /* register built-in themes */
|
|
||||||
if (!config_weechat_init ()) /* init WeeChat options (weechat.*) */
|
if (!config_weechat_init ()) /* init WeeChat options (weechat.*) */
|
||||||
weechat_shutdown (EXIT_FAILURE, 0);
|
weechat_shutdown (EXIT_FAILURE, 0);
|
||||||
args_parse (argc, argv); /* parse command line args */
|
args_parse (argc, argv); /* parse command line args */
|
||||||
@@ -442,13 +423,6 @@ weechat_init (int argc, char *argv[], void (*gui_init_cb)(void))
|
|||||||
weechat_doc_gen_ok = doc_generate (weechat_doc_gen_path);
|
weechat_doc_gen_ok = doc_generate (weechat_doc_gen_path);
|
||||||
weechat_quit = 1;
|
weechat_quit = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (weechat_first_start && isatty (STDOUT_FILENO) && !weechat_headless && !weechat_doc_gen)
|
|
||||||
{
|
|
||||||
/* switch to "light" theme if terminal background was detected as "light" */
|
|
||||||
if (weechat_term_theme_light)
|
|
||||||
theme_apply ("light");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -475,7 +449,6 @@ weechat_end (void (*gui_end_cb)(int clean_exit))
|
|||||||
unhook_all (); /* remove all hooks */
|
unhook_all (); /* remove all hooks */
|
||||||
hdata_end (); /* end hdata */
|
hdata_end (); /* end hdata */
|
||||||
secure_end (); /* end secured data */
|
secure_end (); /* end secured data */
|
||||||
theme_end (); /* end theme registry */
|
|
||||||
string_end (); /* end string */
|
string_end (); /* end string */
|
||||||
weeurl_end ();
|
weeurl_end ();
|
||||||
weechat_shutdown (-1, 0); /* end other things */
|
weechat_shutdown (-1, 0); /* end other things */
|
||||||
|
|||||||
@@ -55,10 +55,7 @@
|
|||||||
|
|
||||||
#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_DOC "https://weechat.org/doc/"
|
|
||||||
#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"
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -25,14 +25,6 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/select.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <termios.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#ifndef WEECHAT_HEADLESS
|
#ifndef WEECHAT_HEADLESS
|
||||||
#ifdef HAVE_NCURSESW_CURSES_H
|
#ifdef HAVE_NCURSESW_CURSES_H
|
||||||
#ifdef __sun
|
#ifdef __sun
|
||||||
@@ -45,8 +37,6 @@
|
|||||||
#endif /* HAVE_NCURSESW_CURSES_H */
|
#endif /* HAVE_NCURSESW_CURSES_H */
|
||||||
#endif /* WEECHAT_HEADLESS */
|
#endif /* WEECHAT_HEADLESS */
|
||||||
|
|
||||||
#include "../../core/weechat.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set "eat_newline_glitch" variable.
|
* Set "eat_newline_glitch" variable.
|
||||||
@@ -66,139 +56,3 @@ gui_term_set_eat_newline_glitch (int value)
|
|||||||
(void) value;
|
(void) value;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Auto-detects the terminal background as "light" or "dark".
|
|
||||||
*
|
|
||||||
* Best-effort, in order:
|
|
||||||
*
|
|
||||||
* 1. Environment variable COLORFGBG (set by rxvt, urxvt, Konsole,
|
|
||||||
* ...): "fg;bg" or "fg;default;bg"; the last ';'-separated
|
|
||||||
* component is the bg ANSI color index. 0-6 + 8 are dark,
|
|
||||||
* 7 + 9-15 are light.
|
|
||||||
*
|
|
||||||
* 2. OSC 11 escape query on /dev/tty: write "\033]11;?\033\\",
|
|
||||||
* wait up to 100 ms for a reply of the form
|
|
||||||
* "...rgb:RRRR/GGGG/BBBB..." (each component is 1-4 hex digits
|
|
||||||
* depending on the terminal). Classify the answer by Rec. 601
|
|
||||||
* luminance computed on the high nibble of each component
|
|
||||||
* (resolution is plenty for a light/dark binary decision and
|
|
||||||
* avoids width-normalization headaches).
|
|
||||||
*
|
|
||||||
* /dev/tty is used rather than stdin/stdout so a pipe redirection
|
|
||||||
* does not defeat detection. The select() timeout caps how long a
|
|
||||||
* silent terminal can stall startup. Headless mode and any I/O error
|
|
||||||
* short-circuit to the safe default 0 (dark), which is also returned
|
|
||||||
* when both probes are inconclusive.
|
|
||||||
*
|
|
||||||
* MUST be called before curses init: it briefly puts the tty in raw
|
|
||||||
* mode and reads/writes escape sequences directly.
|
|
||||||
*
|
|
||||||
* Returns 1 if a light background is detected, otherwise 0 (0 is the
|
|
||||||
* preferred value when detection is unsure).
|
|
||||||
*/
|
|
||||||
|
|
||||||
int
|
|
||||||
gui_term_theme_is_light (void)
|
|
||||||
{
|
|
||||||
const char *colorfgbg, *p;
|
|
||||||
char *endptr;
|
|
||||||
long bg;
|
|
||||||
int fd, n, i, len;
|
|
||||||
struct termios old_attr, new_attr;
|
|
||||||
fd_set rfds;
|
|
||||||
struct timeval tv;
|
|
||||||
char buf[256], *q, *qend;
|
|
||||||
unsigned long comp_high[3], luminance;
|
|
||||||
|
|
||||||
if (weechat_headless)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* 1. COLORFGBG */
|
|
||||||
colorfgbg = getenv ("COLORFGBG");
|
|
||||||
if (colorfgbg && colorfgbg[0])
|
|
||||||
{
|
|
||||||
p = strrchr (colorfgbg, ';');
|
|
||||||
if (p)
|
|
||||||
{
|
|
||||||
bg = strtol (p + 1, &endptr, 10);
|
|
||||||
if (endptr != p + 1 && *endptr == '\0')
|
|
||||||
{
|
|
||||||
if (bg == 7 || (bg >= 9 && bg <= 15))
|
|
||||||
return 1;
|
|
||||||
if ((bg >= 0 && bg <= 6) || bg == 8)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 2. OSC 11 query on the controlling terminal */
|
|
||||||
fd = open ("/dev/tty", O_RDWR | O_NOCTTY);
|
|
||||||
if (fd < 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (tcgetattr (fd, &old_attr) != 0)
|
|
||||||
{
|
|
||||||
close (fd);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
new_attr = old_attr;
|
|
||||||
new_attr.c_lflag &= (tcflag_t) ~(ICANON | ECHO);
|
|
||||||
new_attr.c_cc[VMIN] = 0;
|
|
||||||
new_attr.c_cc[VTIME] = 0;
|
|
||||||
if (tcsetattr (fd, TCSANOW, &new_attr) != 0)
|
|
||||||
{
|
|
||||||
close (fd);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
n = -1;
|
|
||||||
if (write (fd, "\033]11;?\033\\", 8) == 8)
|
|
||||||
{
|
|
||||||
FD_ZERO (&rfds);
|
|
||||||
FD_SET (fd, &rfds);
|
|
||||||
tv.tv_sec = 0;
|
|
||||||
tv.tv_usec = 100000; /* 100 ms cap on terminals that won't reply */
|
|
||||||
if (select (fd + 1, &rfds, NULL, NULL, &tv) > 0)
|
|
||||||
n = read (fd, buf, sizeof (buf) - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
tcsetattr (fd, TCSANOW, &old_attr);
|
|
||||||
close (fd);
|
|
||||||
|
|
||||||
if (n <= 0)
|
|
||||||
return 0;
|
|
||||||
buf[n] = '\0';
|
|
||||||
|
|
||||||
q = strstr (buf, "rgb:");
|
|
||||||
if (!q)
|
|
||||||
return 0;
|
|
||||||
q += 4;
|
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
|
||||||
{
|
|
||||||
qend = q;
|
|
||||||
while ((*qend >= '0' && *qend <= '9')
|
|
||||||
|| (*qend >= 'a' && *qend <= 'f')
|
|
||||||
|| (*qend >= 'A' && *qend <= 'F'))
|
|
||||||
qend++;
|
|
||||||
len = (int)(qend - q);
|
|
||||||
if (len < 1 || len > 4)
|
|
||||||
return 0;
|
|
||||||
/* high nibble of this component: width-independent brightness */
|
|
||||||
comp_high[i] = strtoul (q, NULL, 16) >> ((len - 1) * 4);
|
|
||||||
q = qend;
|
|
||||||
if (i < 2)
|
|
||||||
{
|
|
||||||
if (*q != '/')
|
|
||||||
return 0;
|
|
||||||
q++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Rec. 601 with coefficients summing to 1000; max = 15 * 1000 */
|
|
||||||
luminance = (299UL * comp_high[0]
|
|
||||||
+ 587UL * comp_high[1]
|
|
||||||
+ 114UL * comp_high[2]);
|
|
||||||
return (luminance > 7500) ? 1 : 0;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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,9 +909,13 @@ 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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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,27 +1032,31 @@ 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
-100
@@ -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)
|
||||||
@@ -3775,7 +3804,6 @@ gui_buffer_close (struct t_gui_buffer *buffer)
|
|||||||
|
|
||||||
gui_hotlist_remove_buffer (buffer, 1);
|
gui_hotlist_remove_buffer (buffer, 1);
|
||||||
free (buffer->hotlist_removed);
|
free (buffer->hotlist_removed);
|
||||||
buffer->hotlist_removed = NULL;
|
|
||||||
if (gui_hotlist_initial_buffer == buffer)
|
if (gui_hotlist_initial_buffer == buffer)
|
||||||
gui_hotlist_initial_buffer = NULL;
|
gui_hotlist_initial_buffer = NULL;
|
||||||
|
|
||||||
@@ -3794,85 +3822,55 @@ gui_buffer_close (struct t_gui_buffer *buffer)
|
|||||||
/* free all lines */
|
/* free all lines */
|
||||||
gui_line_free_all (buffer);
|
gui_line_free_all (buffer);
|
||||||
free (buffer->own_lines);
|
free (buffer->own_lines);
|
||||||
buffer->own_lines = NULL;
|
|
||||||
free (buffer->mixed_lines);
|
free (buffer->mixed_lines);
|
||||||
buffer->mixed_lines = NULL;
|
|
||||||
|
|
||||||
/* free some data */
|
/* free some data */
|
||||||
gui_buffer_undo_free_all (buffer);
|
gui_buffer_undo_free_all (buffer);
|
||||||
gui_history_buffer_free (buffer);
|
gui_history_buffer_free (buffer);
|
||||||
gui_completion_free (buffer->completion);
|
gui_completion_free (buffer->completion);
|
||||||
buffer->completion = NULL;
|
|
||||||
gui_nicklist_remove_all (buffer);
|
gui_nicklist_remove_all (buffer);
|
||||||
gui_nicklist_remove_group (buffer, buffer->nicklist_root);
|
gui_nicklist_remove_group (buffer, buffer->nicklist_root);
|
||||||
buffer->nicklist_root = NULL;
|
|
||||||
hashtable_free (buffer->hotlist_max_level_nicks);
|
hashtable_free (buffer->hotlist_max_level_nicks);
|
||||||
buffer->hotlist_max_level_nicks = NULL;
|
|
||||||
gui_key_free_all (-1, &buffer->keys, &buffer->last_key,
|
gui_key_free_all (-1, &buffer->keys, &buffer->last_key,
|
||||||
&buffer->keys_count, 0);
|
&buffer->keys_count, 0);
|
||||||
gui_buffer_local_var_remove_all (buffer);
|
gui_buffer_local_var_remove_all (buffer);
|
||||||
hashtable_free (buffer->local_variables);
|
hashtable_free (buffer->local_variables);
|
||||||
buffer->local_variables = NULL;
|
|
||||||
free (buffer->plugin_name_for_upgrade);
|
free (buffer->plugin_name_for_upgrade);
|
||||||
buffer->plugin_name_for_upgrade = NULL;
|
|
||||||
free (buffer->name);
|
free (buffer->name);
|
||||||
buffer->name = NULL;
|
|
||||||
free (buffer->full_name);
|
free (buffer->full_name);
|
||||||
buffer->full_name = NULL;
|
|
||||||
free (buffer->old_full_name);
|
free (buffer->old_full_name);
|
||||||
buffer->old_full_name = NULL;
|
|
||||||
free (buffer->short_name);
|
free (buffer->short_name);
|
||||||
buffer->short_name = NULL;
|
|
||||||
free (buffer->title);
|
free (buffer->title);
|
||||||
buffer->title = NULL;
|
|
||||||
free (buffer->modes);
|
free (buffer->modes);
|
||||||
buffer->modes = NULL;
|
|
||||||
free (buffer->input_prompt);
|
free (buffer->input_prompt);
|
||||||
buffer->input_prompt = NULL;
|
|
||||||
free (buffer->input_buffer);
|
free (buffer->input_buffer);
|
||||||
buffer->input_buffer = NULL;
|
|
||||||
free (buffer->input_undo_snap);
|
free (buffer->input_undo_snap);
|
||||||
buffer->input_undo_snap = NULL;
|
|
||||||
free (buffer->text_search_input);
|
free (buffer->text_search_input);
|
||||||
buffer->text_search_input = NULL;
|
|
||||||
if (buffer->text_search_regex_compiled)
|
if (buffer->text_search_regex_compiled)
|
||||||
{
|
{
|
||||||
regfree (buffer->text_search_regex_compiled);
|
regfree (buffer->text_search_regex_compiled);
|
||||||
free (buffer->text_search_regex_compiled);
|
free (buffer->text_search_regex_compiled);
|
||||||
buffer->text_search_regex_compiled = NULL;
|
|
||||||
}
|
}
|
||||||
free (buffer->highlight_words);
|
free (buffer->highlight_words);
|
||||||
buffer->highlight_words = NULL;
|
|
||||||
free (buffer->highlight_disable_regex);
|
free (buffer->highlight_disable_regex);
|
||||||
buffer->highlight_disable_regex = NULL;
|
|
||||||
if (buffer->highlight_disable_regex_compiled)
|
if (buffer->highlight_disable_regex_compiled)
|
||||||
{
|
{
|
||||||
regfree (buffer->highlight_disable_regex_compiled);
|
regfree (buffer->highlight_disable_regex_compiled);
|
||||||
free (buffer->highlight_disable_regex_compiled);
|
free (buffer->highlight_disable_regex_compiled);
|
||||||
buffer->highlight_disable_regex_compiled = NULL;
|
|
||||||
}
|
}
|
||||||
free (buffer->highlight_regex);
|
free (buffer->highlight_regex);
|
||||||
buffer->highlight_regex = NULL;
|
|
||||||
if (buffer->highlight_regex_compiled)
|
if (buffer->highlight_regex_compiled)
|
||||||
{
|
{
|
||||||
regfree (buffer->highlight_regex_compiled);
|
regfree (buffer->highlight_regex_compiled);
|
||||||
free (buffer->highlight_regex_compiled);
|
free (buffer->highlight_regex_compiled);
|
||||||
buffer->highlight_regex_compiled = NULL;
|
|
||||||
}
|
}
|
||||||
free (buffer->highlight_tags_restrict);
|
free (buffer->highlight_tags_restrict);
|
||||||
buffer->highlight_tags_restrict = NULL;
|
|
||||||
string_free_split_tags (buffer->highlight_tags_restrict_array);
|
string_free_split_tags (buffer->highlight_tags_restrict_array);
|
||||||
buffer->highlight_tags_restrict_array = NULL;
|
|
||||||
free (buffer->highlight_tags);
|
free (buffer->highlight_tags);
|
||||||
buffer->highlight_tags = NULL;
|
|
||||||
string_free_split_tags (buffer->highlight_tags_array);
|
string_free_split_tags (buffer->highlight_tags_array);
|
||||||
buffer->highlight_tags_array = NULL;
|
|
||||||
free (buffer->input_callback_data);
|
free (buffer->input_callback_data);
|
||||||
buffer->input_callback_data = NULL;
|
|
||||||
free (buffer->close_callback_data);
|
free (buffer->close_callback_data);
|
||||||
buffer->close_callback_data = NULL;
|
|
||||||
free (buffer->nickcmp_callback_data);
|
free (buffer->nickcmp_callback_data);
|
||||||
buffer->nickcmp_callback_data = NULL;
|
|
||||||
|
|
||||||
/* remove buffer from buffers list */
|
/* remove buffer from buffers list */
|
||||||
if (buffer->prev_buffer)
|
if (buffer->prev_buffer)
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
@@ -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 */
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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");
|
||||||
|
|||||||
@@ -31,6 +31,5 @@ extern void gui_main_end (int clean_exit);
|
|||||||
|
|
||||||
/* terminal functions (GUI dependent) */
|
/* terminal functions (GUI dependent) */
|
||||||
extern void gui_term_set_eat_newline_glitch (int value);
|
extern void gui_term_set_eat_newline_glitch (int value);
|
||||||
extern int gui_term_theme_is_light (void);
|
|
||||||
|
|
||||||
#endif /* WEECHAT_GUI_MAIN_H */
|
#endif /* WEECHAT_GUI_MAIN_H */
|
||||||
|
|||||||
+22
-9
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ add_library(buflist MODULE
|
|||||||
buflist-config.c buflist-config.h
|
buflist-config.c buflist-config.h
|
||||||
buflist-info.c buflist-info.h
|
buflist-info.c buflist-info.h
|
||||||
buflist-mouse.c buflist-mouse.h
|
buflist-mouse.c buflist-mouse.h
|
||||||
buflist-theme.c buflist-theme.h
|
|
||||||
)
|
)
|
||||||
set_target_properties(buflist PROPERTIES PREFIX "")
|
set_target_properties(buflist PROPERTIES PREFIX "")
|
||||||
|
|
||||||
|
|||||||
@@ -645,7 +645,7 @@ buflist_config_init (void)
|
|||||||
{
|
{
|
||||||
buflist_config_format_buffer = weechat_config_new_option (
|
buflist_config_format_buffer = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"buffer", "string|themable",
|
"buffer", "string",
|
||||||
N_("format of each line with a buffer "
|
N_("format of each line with a buffer "
|
||||||
"(note: content is evaluated, see /help buflist); "
|
"(note: content is evaluated, see /help buflist); "
|
||||||
"example: standard format for bar item \"buflist\" and only the "
|
"example: standard format for bar item \"buflist\" and only the "
|
||||||
@@ -663,7 +663,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_buffer_current = weechat_config_new_option (
|
buflist_config_format_buffer_current = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"buffer_current", "string|themable",
|
"buffer_current", "string",
|
||||||
N_("format for the line with current buffer "
|
N_("format for the line with current buffer "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color:,17}${format_buffer}", NULL, 0,
|
NULL, 0, 0, "${color:,17}${format_buffer}", NULL, 0,
|
||||||
@@ -672,7 +672,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_hotlist = weechat_config_new_option (
|
buflist_config_format_hotlist = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"hotlist", "string|themable",
|
"hotlist", "string",
|
||||||
N_("format for hotlist "
|
N_("format for hotlist "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0,
|
NULL, 0, 0,
|
||||||
@@ -683,7 +683,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_hotlist_level[3] = weechat_config_new_option (
|
buflist_config_format_hotlist_level[3] = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"hotlist_highlight", "string|themable",
|
"hotlist_highlight", "string",
|
||||||
N_("format for a buffer with hotlist level \"highlight\" "
|
N_("format for a buffer with hotlist level \"highlight\" "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color:magenta}", NULL, 0,
|
NULL, 0, 0, "${color:magenta}", NULL, 0,
|
||||||
@@ -692,7 +692,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_hotlist_level[0] = weechat_config_new_option (
|
buflist_config_format_hotlist_level[0] = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"hotlist_low", "string|themable",
|
"hotlist_low", "string",
|
||||||
N_("format for a buffer with hotlist level \"low\" "
|
N_("format for a buffer with hotlist level \"low\" "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color:white}", NULL, 0,
|
NULL, 0, 0, "${color:white}", NULL, 0,
|
||||||
@@ -701,7 +701,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_hotlist_level[1] = weechat_config_new_option (
|
buflist_config_format_hotlist_level[1] = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"hotlist_message", "string|themable",
|
"hotlist_message", "string",
|
||||||
N_("format for a buffer with hotlist level \"message\" "
|
N_("format for a buffer with hotlist level \"message\" "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color:brown}", NULL, 0,
|
NULL, 0, 0, "${color:brown}", NULL, 0,
|
||||||
@@ -710,7 +710,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_hotlist_level_none = weechat_config_new_option (
|
buflist_config_format_hotlist_level_none = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"hotlist_none", "string|themable",
|
"hotlist_none", "string",
|
||||||
N_("format for a buffer not in hotlist "
|
N_("format for a buffer not in hotlist "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color:default}", NULL, 0,
|
NULL, 0, 0, "${color:default}", NULL, 0,
|
||||||
@@ -719,7 +719,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_hotlist_level[2] = weechat_config_new_option (
|
buflist_config_format_hotlist_level[2] = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"hotlist_private", "string|themable",
|
"hotlist_private", "string",
|
||||||
N_("format for a buffer with hotlist level \"private\" "
|
N_("format for a buffer with hotlist level \"private\" "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color:green}", NULL, 0,
|
NULL, 0, 0, "${color:green}", NULL, 0,
|
||||||
@@ -728,7 +728,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_hotlist_separator = weechat_config_new_option (
|
buflist_config_format_hotlist_separator = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"hotlist_separator", "string|themable",
|
"hotlist_separator", "string",
|
||||||
N_("separator for counts in hotlist "
|
N_("separator for counts in hotlist "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color:default},", NULL, 0,
|
NULL, 0, 0, "${color:default},", NULL, 0,
|
||||||
@@ -737,7 +737,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_indent = weechat_config_new_option (
|
buflist_config_format_indent = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"indent", "string|themable",
|
"indent", "string",
|
||||||
N_("string displayed to indent channel, private and list buffers "
|
N_("string displayed to indent channel, private and list buffers "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, " ", NULL, 0,
|
NULL, 0, 0, " ", NULL, 0,
|
||||||
@@ -746,7 +746,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_lag = weechat_config_new_option (
|
buflist_config_format_lag = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"lag", "string|themable",
|
"lag", "string",
|
||||||
N_("format for lag on an IRC server buffer "
|
N_("format for lag on an IRC server buffer "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0,
|
NULL, 0, 0,
|
||||||
@@ -757,7 +757,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_name = weechat_config_new_option (
|
buflist_config_format_name = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"name", "string|themable",
|
"name", "string",
|
||||||
N_("format for buffer name "
|
N_("format for buffer name "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${name}", NULL, 0,
|
NULL, 0, 0, "${name}", NULL, 0,
|
||||||
@@ -766,7 +766,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_nick_prefix = weechat_config_new_option (
|
buflist_config_format_nick_prefix = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"nick_prefix", "string|themable",
|
"nick_prefix", "string",
|
||||||
N_("format for nick prefix on a channel "
|
N_("format for nick prefix on a channel "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0, "${color_nick_prefix}${nick_prefix}", NULL, 0,
|
NULL, 0, 0, "${color_nick_prefix}${nick_prefix}", NULL, 0,
|
||||||
@@ -775,7 +775,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_number = weechat_config_new_option (
|
buflist_config_format_number = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"number", "string|themable",
|
"number", "string",
|
||||||
N_("format for buffer number, ${number} is the indented number "
|
N_("format for buffer number, ${number} is the indented number "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0,
|
NULL, 0, 0,
|
||||||
@@ -786,7 +786,7 @@ buflist_config_init (void)
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
buflist_config_format_tls_version = weechat_config_new_option (
|
buflist_config_format_tls_version = weechat_config_new_option (
|
||||||
buflist_config_file, buflist_config_section_format,
|
buflist_config_file, buflist_config_section_format,
|
||||||
"tls_version", "string|themable",
|
"tls_version", "string",
|
||||||
N_("format for TLS version on an IRC server buffer "
|
N_("format for TLS version on an IRC server buffer "
|
||||||
"(note: content is evaluated, see /help buflist)"),
|
"(note: content is evaluated, see /help buflist)"),
|
||||||
NULL, 0, 0,
|
NULL, 0, 0,
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
@@ -1,93 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This file is part of WeeChat, the extensible chat client.
|
|
||||||
*
|
|
||||||
* WeeChat is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* WeeChat is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* buflist contribution to built-in themes. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "../weechat-plugin.h"
|
|
||||||
#include "buflist.h"
|
|
||||||
#include "buflist-theme.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* buflist contribution to the "light" theme: format strings tuned for
|
|
||||||
* a light-background terminal. Each row is { option_full_name, value };
|
|
||||||
* the table is NULL-terminated.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const char *buflist_theme_light[][2] =
|
|
||||||
{
|
|
||||||
{ "buflist.format.buffer_current",
|
|
||||||
"${color:,117}${format_buffer}" },
|
|
||||||
{ "buflist.format.hotlist_low",
|
|
||||||
"${color:default}" },
|
|
||||||
{ "buflist.format.hotlist_message",
|
|
||||||
"${color:94}" },
|
|
||||||
{ "buflist.format.lag",
|
|
||||||
" ${color:green}[${color:94}${lag}${color:green}]" },
|
|
||||||
{ "buflist.format.number",
|
|
||||||
"${color:28}${number}${if:${number_displayed}?.: }" },
|
|
||||||
{ NULL, NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Registers buflist's contribution to one theme from a NULL-terminated
|
|
||||||
* table of {option, value} rows.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
buflist_theme_register (const char *name, const char *entries[][2])
|
|
||||||
{
|
|
||||||
struct t_hashtable *overrides;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (!name || !entries)
|
|
||||||
return;
|
|
||||||
|
|
||||||
overrides = weechat_hashtable_new (32,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (!overrides)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (i = 0; entries[i][0]; i++)
|
|
||||||
weechat_hashtable_set (overrides, entries[i][0], entries[i][1]);
|
|
||||||
|
|
||||||
weechat_theme_register (name, overrides);
|
|
||||||
|
|
||||||
weechat_hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Registers all built-in theme contributions from buflist.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
buflist_theme_init (void)
|
|
||||||
{
|
|
||||||
buflist_theme_register ("light", buflist_theme_light);
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This file is part of WeeChat, the extensible chat client.
|
|
||||||
*
|
|
||||||
* WeeChat is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* WeeChat is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef WEECHAT_PLUGIN_BUFLIST_THEME_H
|
|
||||||
#define WEECHAT_PLUGIN_BUFLIST_THEME_H
|
|
||||||
|
|
||||||
extern void buflist_theme_init (void);
|
|
||||||
|
|
||||||
#endif /* WEECHAT_PLUGIN_BUFLIST_THEME_H */
|
|
||||||
@@ -34,7 +34,6 @@
|
|||||||
#include "buflist-config.h"
|
#include "buflist-config.h"
|
||||||
#include "buflist-info.h"
|
#include "buflist-info.h"
|
||||||
#include "buflist-mouse.h"
|
#include "buflist-mouse.h"
|
||||||
#include "buflist-theme.h"
|
|
||||||
|
|
||||||
|
|
||||||
WEECHAT_PLUGIN_NAME(BUFLIST_PLUGIN_NAME);
|
WEECHAT_PLUGIN_NAME(BUFLIST_PLUGIN_NAME);
|
||||||
@@ -456,8 +455,6 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
|||||||
|
|
||||||
buflist_config_read ();
|
buflist_config_read ();
|
||||||
|
|
||||||
buflist_theme_init ();
|
|
||||||
|
|
||||||
if (!buflist_bar_item_init ())
|
if (!buflist_bar_item_init ())
|
||||||
return WEECHAT_RC_ERROR;
|
return WEECHAT_RC_ERROR;
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ add_library(exec MODULE
|
|||||||
exec-command.c exec-command.h
|
exec-command.c exec-command.h
|
||||||
exec-completion.c exec-completion.h
|
exec-completion.c exec-completion.h
|
||||||
exec-config.c exec-config.h
|
exec-config.c exec-config.h
|
||||||
exec-theme.c exec-theme.h
|
|
||||||
)
|
)
|
||||||
set_target_properties(exec PROPERTIES PREFIX "")
|
set_target_properties(exec PROPERTIES PREFIX "")
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This file is part of WeeChat, the extensible chat client.
|
|
||||||
*
|
|
||||||
* WeeChat is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* WeeChat is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* exec contribution to built-in themes. */
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include "config.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "../weechat-plugin.h"
|
|
||||||
#include "exec.h"
|
|
||||||
#include "exec-theme.h"
|
|
||||||
|
|
||||||
|
|
||||||
const char *exec_theme_light[][2] =
|
|
||||||
{
|
|
||||||
{ "exec.color.flag_finished", "red" },
|
|
||||||
{ "exec.color.flag_running", "green" },
|
|
||||||
{ NULL, NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
void
|
|
||||||
exec_theme_register (const char *name, const char *entries[][2])
|
|
||||||
{
|
|
||||||
struct t_hashtable *overrides;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (!name || !entries)
|
|
||||||
return;
|
|
||||||
|
|
||||||
overrides = weechat_hashtable_new (32,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
WEECHAT_HASHTABLE_STRING,
|
|
||||||
NULL, NULL);
|
|
||||||
if (!overrides)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (i = 0; entries[i][0]; i++)
|
|
||||||
weechat_hashtable_set (overrides, entries[i][0], entries[i][1]);
|
|
||||||
|
|
||||||
weechat_theme_register (name, overrides);
|
|
||||||
|
|
||||||
weechat_hashtable_free (overrides);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
exec_theme_init (void)
|
|
||||||
{
|
|
||||||
exec_theme_register ("light", exec_theme_light);
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2026 Sébastien Helleu <flashcode@flashtux.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
*
|
|
||||||
* This file is part of WeeChat, the extensible chat client.
|
|
||||||
*
|
|
||||||
* WeeChat is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* WeeChat is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef WEECHAT_PLUGIN_EXEC_THEME_H
|
|
||||||
#define WEECHAT_PLUGIN_EXEC_THEME_H
|
|
||||||
|
|
||||||
extern void exec_theme_init (void);
|
|
||||||
|
|
||||||
#endif /* WEECHAT_PLUGIN_EXEC_THEME_H */
|
|
||||||
@@ -32,7 +32,6 @@
|
|||||||
#include "exec-command.h"
|
#include "exec-command.h"
|
||||||
#include "exec-completion.h"
|
#include "exec-completion.h"
|
||||||
#include "exec-config.h"
|
#include "exec-config.h"
|
||||||
#include "exec-theme.h"
|
|
||||||
|
|
||||||
|
|
||||||
WEECHAT_PLUGIN_NAME(EXEC_PLUGIN_NAME);
|
WEECHAT_PLUGIN_NAME(EXEC_PLUGIN_NAME);
|
||||||
@@ -86,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;
|
||||||
@@ -740,8 +742,6 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
|
|||||||
if (!exec_config_init ())
|
if (!exec_config_init ())
|
||||||
return WEECHAT_RC_ERROR;
|
return WEECHAT_RC_ERROR;
|
||||||
|
|
||||||
exec_theme_init ();
|
|
||||||
|
|
||||||
exec_config_read ();
|
exec_config_read ();
|
||||||
|
|
||||||
/* hook some signals */
|
/* hook some signals */
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ add_library(fset MODULE
|
|||||||
fset-info.c fset-info.h
|
fset-info.c fset-info.h
|
||||||
fset-mouse.c fset-mouse.h
|
fset-mouse.c fset-mouse.h
|
||||||
fset-option.c fset-option.h
|
fset-option.c fset-option.h
|
||||||
fset-theme.c fset-theme.h
|
|
||||||
)
|
)
|
||||||
set_target_properties(fset PROPERTIES PREFIX "")
|
set_target_properties(fset PROPERTIES PREFIX "")
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user