1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-09 19:23:13 +02:00

Compare commits

..

10 Commits

Author SHA1 Message Date
Sébastien Helleu a9d01b2db0 core: fix typos in German translations 2026-07-05 19:16:45 +02:00
weechatter 279f22780b core: update German translations 2026-07-05 19:03:31 +02:00
Sébastien Helleu e1fdd9fd71 core: add version 4.9.3 2026-07-05 16:14:16 +02:00
Sébastien Helleu 45dbf3ce9f core: fix compiler warning on unused variable "size" when malloc_trim() is not available 2026-07-05 14:36:06 +02:00
Sébastien Helleu b4ce4e6262 core: update ChangeLog (GHSA-wmpc-m6g9-fwj8) 2026-07-05 14:36:06 +02:00
Sébastien Helleu 3950041801 core: fix time-of-check/time-of-use race condition on theme files
Open theme files directly instead of probing them with access() first in
commands /theme apply, /theme rename and /theme info. The renamed file is
now created with O_CREAT | O_EXCL so an existing theme is never clobbered.
2026-07-05 12:35:52 +02:00
Sébastien Helleu f65591cb56 api: do not free dynamic string on error in function string_dyn_concat 2026-07-05 12:00:32 +02:00
Sébastien Helleu 20f5ecc6dd core: fix possible buffer overflow in list of commands displayed by /help (issue #2330)
Fix: c.lang.security.insecure-use-strcat-fn.insecure-use-strcat-fn security vulnerability

Found by OrbisAI Security
2026-07-05 10:26:52 +02:00
orbisai0security aa77bff164 core: fix possible buffer overflow in command /color alias (issue #2330)
Fix: c.lang.security.insecure-use-strcat-fn.insecure-use-strcat-fn security vulnerability

Automated security fix generated by OrbisAI Security
2026-07-05 10:25:24 +02:00
Sébastien Helleu 031bc877cb core: add issue in ChangeLog (closes #1338) 2026-07-05 09:15:23 +02:00
25 changed files with 263 additions and 295 deletions
+22 -7
View File
@@ -17,12 +17,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
### Added ### Added
- core: add command `/theme` - core: add command `/theme` ([#1338](https://github.com/weechat/weechat/issues/1338))
- core: add built-in "light" theme, applied automatically on first start on light-background terminals - core: add built-in "light" theme, applied automatically on first start on light-background terminals ([#1338](https://github.com/weechat/weechat/issues/1338))
- core: add `themable` flag on configuration options - core: add `themable` flag on configuration options ([#1338](https://github.com/weechat/weechat/issues/1338))
- core: add options weechat.look.theme and weechat.look.theme_backup - core: add options weechat.look.theme and weechat.look.theme_backup ([#1338](https://github.com/weechat/weechat/issues/1338))
- api: add function theme_register - api: add function theme_register ([#1338](https://github.com/weechat/weechat/issues/1338))
- fset: add filter `t:themable` - fset: add filter `t:themable` ([#1338](https://github.com/weechat/weechat/issues/1338))
- relay/api: add resource `GET /api/scripts` - relay/api: add resource `GET /api/scripts`
- relay: add option relay.network.unix_socket_permissions ([#2317](https://github.com/weechat/weechat/issues/2317)) - relay: add option relay.network.unix_socket_permissions ([#2317](https://github.com/weechat/weechat/issues/2317))
- script: add info "script_languages" - script: add info "script_languages"
@@ -31,7 +31,10 @@ 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))
- core: fix buffer overflow in connection to SOCKS5 proxy ([#2325](https://github.com/weechat/weechat/issues/2325)) - core: fix buffer overflow in connection to SOCKS5 proxy ([#2325](https://github.com/weechat/weechat/issues/2325))
- core: fix possible buffer overflow in command /color alias ([#2330](https://github.com/weechat/weechat/issues/2330))
- core: fix possible buffer overflow in list of commands displayed by /help ([#2330](https://github.com/weechat/weechat/issues/2330))
- api: fix infinite loop in function string_replace when the search string is empty - api: fix infinite loop in function string_replace when the search string is empty
- api: do not free dynamic string on error in function string_dyn_concat
- 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
- fset: remove error displayed in core buffer when clicking with the mouse below the last option displayed - 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 - guile, lua, perl, python, ruby, tcl: fix conversion of dates in the API functions
@@ -43,13 +46,25 @@ SPDX-License-Identifier: GPL-3.0-or-later
- relay: limit size of partial message received while reading an HTTP request 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 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: fix out-of-bounds read in dump of data ([#2324](https://github.com/weechat/weechat/issues/2324))
- relay/api: fix memory leak in resources "handshake", "input" and "completion" - relay/api: fix memory leak in resources "handshake", "input" and "completion" ([GHSA-wmpc-m6g9-fwj8](https://github.com/weechat/weechat/security/advisories/GHSA-wmpc-m6g9-fwj8))
- relay: fix read of uncompressed websocket frame ([#2331](https://github.com/weechat/weechat/issues/2331)) - relay: fix read of uncompressed websocket frame ([#2331](https://github.com/weechat/weechat/issues/2331))
- 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), [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: 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 read when receiving empty line in DCC chat ([#2323](https://github.com/weechat/weechat/issues/2323))
- xfer: fix out-of-bounds write in xfer file transfer resume ([#2326](https://github.com/weechat/weechat/issues/2326)) - xfer: fix out-of-bounds write in xfer file transfer resume ([#2326](https://github.com/weechat/weechat/issues/2326))
## Version 4.9.3 (2026-07-05)
### Fixed
- core: fix buffer overflow in connection to SOCKS5 proxy ([#2325](https://github.com/weechat/weechat/issues/2325))
- core: fix possible buffer overflow in command /color alias ([#2330](https://github.com/weechat/weechat/issues/2330))
- core: fix possible buffer overflow in list of commands displayed by /help ([#2330](https://github.com/weechat/weechat/issues/2330))
- api: do not free dynamic string on error in function string_dyn_concat
- relay/api: fix memory leak in resources "handshake", "input" and "completion" ([GHSA-wmpc-m6g9-fwj8](https://github.com/weechat/weechat/security/advisories/GHSA-wmpc-m6g9-fwj8))
- relay: fix read of uncompressed websocket frame ([#2331](https://github.com/weechat/weechat/issues/2331))
- 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
+2
View File
@@ -3474,6 +3474,8 @@ Concatenate a string to a dynamic string.
The pointer _*string_ can change if the string is reallocated (if there is The pointer _*string_ can change if the string is reallocated (if there is
not enough space to concatenate the string). not enough space to concatenate the string).
In case of error, the dynamic string is left unchanged.
Prototype: Prototype:
[source,c] [source,c]
+2
View File
@@ -3532,6 +3532,8 @@ Concaténer une chaîne dans une chaîne dynamique.
Le pointeur _*string_ peut changer si la chaîne est réallouée (s'il n'y a pas Le pointeur _*string_ peut changer si la chaîne est réallouée (s'il n'y a pas
assez de place pour concaténer la chaîne). assez de place pour concaténer la chaîne).
En cas d'erreur, la chaîne dynamique reste inchangée.
Prototype : Prototype :
[source,c] [source,c]
+3
View File
@@ -3635,6 +3635,9 @@ Concatenate a string to a dynamic string.
The pointer _*string_ can change if the string is reallocated (if there is The pointer _*string_ can change if the string is reallocated (if there is
not enough space to concatenate the string). not enough space to concatenate the string).
// TRANSLATION MISSING
In case of error, the dynamic string is left unchanged.
Prototipo: Prototipo:
[source,c] [source,c]
+3
View File
@@ -3586,6 +3586,9 @@ _WeeChat バージョン 1.8 以上で利用可, updated in 3.0_
文字列が再確保された場合 (文字列を連結するのに十分なサイズが確保されていなかった場合) 文字列が再確保された場合 (文字列を連結するのに十分なサイズが確保されていなかった場合)
にはポインタ _*string_ が変わる可能性があります。 にはポインタ _*string_ が変わる可能性があります。
// TRANSLATION MISSING
In case of error, the dynamic string is left unchanged.
プロトタイプ: プロトタイプ:
[source,c] [source,c]
+3
View File
@@ -3356,6 +3356,9 @@ _WeeChat ≥ 1.8, ажурирано у верзији 3.0._
Показивач на стринг _*string_ може да се промени ако се стринг реалоцира (у случају да нема довољно простора за надовезивање стринга). Показивач на стринг _*string_ може да се промени ако се стринг реалоцира (у случају да нема довољно простора за надовезивање стринга).
// TRANSLATION MISSING
In case of error, the dynamic string is left unchanged.
Прототип: Прототип:
[source,c] [source,c]
+2 -7
View File
@@ -23,8 +23,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-05-30 14:01+0200\n" "PO-Revision-Date: 2026-07-05 12:29+0200\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: Czech <weechat-dev@nongnu.org>\n"
"Language: cs\n" "Language: cs\n"
@@ -6364,11 +6364,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sUpozornění: %s, řádek %d: neznámý identifikátor sekce (\"%s\")" msgstr "%sUpozornění: %s, řádek %d: neznámý identifikátor sekce (\"%s\")"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: nemůžu parsovat soubor \"%s\""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+127 -91
View File
@@ -26,8 +26,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-06-28 08:28+0200\n" "PO-Revision-Date: 2026-07-05 19:16+0200\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 <weechatter@arcor.de>\n"
"Language: de\n" "Language: de\n"
@@ -41,16 +41,15 @@ msgstr ""
#. 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"
msgstr "" msgstr "deaktiviert das automatische Verbinden mit den Servern beim Start"
"deaktiviert das automatische Verbinden mit den Servern beim Start von WeeChat"
#. TRANSLATORS: command line option "-c", "--colors" #. TRANSLATORS: command line option "-c", "--colors"
msgid "display default colors in terminal and exit" msgid "display default colors in terminal and exit"
msgstr "zeigt die Standardfarben des Terminals an" msgstr "Standardfarben im Terminal anzeigen und beenden"
#. TRANSLATORS: only "<path>" may be translated #. TRANSLATORS: only "<path>" may be translated
msgid "-d, --dir <path>" msgid "-d, --dir <path>"
msgstr "-d, --dir <Pfad>" msgstr "-d, --dir <path>"
#. TRANSLATORS: command line option "-d", "--dir <path>" #. TRANSLATORS: command line option "-d", "--dir <path>"
msgid "" msgid ""
@@ -1003,54 +1002,52 @@ msgstr "Einstellung erstellt: "
msgid "%sFunction \"%s\" is not available on this system" msgid "%sFunction \"%s\" is not available on this system"
msgstr "%sFunktion \"%s\" ist auf dem Rechner nicht verfügbar" msgstr "%sFunktion \"%s\" ist auf dem Rechner nicht verfügbar"
#, fuzzy
#| msgid "not available"
msgid "No theme available" msgid "No theme available"
msgstr "nicht verfügbar" msgstr "Kein Design verfügbar"
msgid "Themes:" msgid "Themes:"
msgstr "" msgstr "Design:"
#, c-format #, c-format
msgid " %s %s%s%s (file)" msgid " %s %s%s%s (file)"
msgstr "" msgstr " %s %s%s%s (Datei)"
#, fuzzy, c-format #, c-format
#| msgid "%sKey \"%s\" not found" #| msgid "%sKey \"%s\" not found"
msgid "%sTheme \"%s\" not found" msgid "%sTheme \"%s\" not found"
msgstr "%sTastenbelegung \"%s\" nicht gefunden" msgstr "%sDesign \"%s\" nicht gefunden"
#, fuzzy, c-format #, c-format
#| msgid "Option \"%s%s%s\":" #| msgid "Option \"%s%s%s\":"
msgid "Theme \"%s%s%s\":" msgid "Theme \"%s%s%s\":"
msgstr "Einstellung \"%s%s%s\":" msgstr "Design \"%s%s%s\":"
#, fuzzy, c-format #, c-format
#| msgid " file: %s" #| msgid " file: %s"
msgid " source: %s" msgid " source: %s"
msgstr " Datei: %s" msgstr " Quelle: %s"
msgid " source: built-in (in-memory)" msgid " source: built-in (in-memory)"
msgstr "" msgstr " Quelle: integriert (im Arbeitsspeicher)"
#, fuzzy, c-format #, c-format
#| msgid "description" #| msgid "description"
msgid " description: %s" msgid " description: %s"
msgstr "Beschreibung" msgstr " Beschreibung: %s"
#, fuzzy, c-format #, c-format
#| msgid " file: %s" #| msgid " file: %s"
msgid " date: %s" msgid " date: %s"
msgstr " Datei: %s" msgstr " Datum: %s"
#, fuzzy, c-format #, c-format
#| msgid "WeeChat version" #| msgid "WeeChat version"
msgid " WeeChat version: %s" msgid " WeeChat version: %s"
msgstr "WeeChat-Version" msgstr " WeeChat Version: %s"
#, c-format #, c-format
msgid " overrides: %d" msgid " overrides: %d"
msgstr "" msgstr " überschreibt: %d"
#, c-format #, c-format
msgid "%sFailed to unset option \"%s\"" msgid "%sFailed to unset option \"%s\""
@@ -4099,18 +4096,18 @@ msgstr ""
msgid "number: number of processes to clean" msgid "number: number of processes to clean"
msgstr "Anzahl: Anzahl der zu bereinigenden Prozesse" msgstr "Anzahl: Anzahl der zu bereinigenden Prozesse"
#, fuzzy
#| msgid "manage custom bar items" #| msgid "manage custom bar items"
msgid "manage color themes" msgid "manage color themes"
msgstr "Verwalten von benutzerdefinierten Bar-Items" msgstr "Farbdesigns verwalten"
#. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated #. TRANSLATORS: only text between angle brackets (eg: "<name>") may be translated
msgid "" msgid ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> " "[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>" "<new> || del <name> || info <name>"
msgstr "" msgstr ""
"[list [-backups]] || apply <name> || reset || save <name> || rename <old> "
"<new> || del <name> || info <name>"
#, fuzzy
#| msgid "" #| msgid ""
#| "raw[list]: list remote relay servers (without argument, this list is " #| "raw[list]: list remote relay servers (without argument, this list is "
#| "displayed)" #| "displayed)"
@@ -4119,57 +4116,70 @@ msgid ""
"configuration directory; the active theme (matching weechat.look.theme) is " "configuration directory; the active theme (matching weechat.look.theme) is "
"marked with \"->\"" "marked with \"->\""
msgstr "" msgstr ""
"raw[list]: listet relay-Server auf (ohne Angabe von Argumente wird diese " "raw[list]: Listet registrierte Themes sowie alle *.theme-Dateien im WeeChat-"
"Liste standardmäßig ausgegeben)" "Konfigurationsverzeichnis auf; das aktive Design (entsprechend "
"weechat.look.theme) ist mit \"->\" gekennzeichnet"
#, fuzzy
#| msgid "raw[tags]: display tags for lines" #| msgid "raw[tags]: display tags for lines"
msgid "raw[-backups]: display backup theme files" msgid "raw[-backups]: display backup theme files"
msgstr "" msgstr "raw[-backups]: Backup-Design-Dateien anzeigen"
"raw[tags]: schaltet für jede Zeile die dazugehörigen Schlagwörter an / aus"
msgid "" msgid ""
"raw[apply]: apply a theme (set every themable option to the value from the " "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 " "theme); if a file named <name>.theme exists in directory \"themes\" it "
"shadows any built-in theme of the same name" "shadows any built-in theme of the same name"
msgstr "" msgstr ""
"raw[apply]: ein Design anwenden (jede anpassbare Option auf den Wert aus dem "
"Theme setzen); existiert eine Datei namens <name>.theme im Verzeichnis "
"\"themes\", so überlagert sie ein etwaiges eingebautes Theme gleichen Namens"
msgid "" msgid ""
"raw[reset]: reset every themable option to its default value (restores the " "raw[reset]: reset every themable option to its default value (restores the "
"original look shipped with WeeChat)" "original look shipped with WeeChat)"
msgstr "" msgstr ""
"raw[reset]: Setzt alle anpassbaren Optionen auf ihren Standardwert zurück "
"(stellt das ursprüngliche, mit WeeChat ausgelieferte Erscheinungsbild wieder "
"her)"
msgid "" msgid ""
"raw[save]: save current themable options to a file <name>.theme in directory " "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; " "\"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-\"" "the name must not match a built-in theme or start with \"backup-\""
msgstr "" msgstr ""
"raw[save]: Speichert die aktuellen anpassbaren Optionen in einer Datei "
"namens <name>.theme im Verzeichnis \"themes\"; dabei werden alle anpassbaren "
"Optionen geschrieben, sodass die Datei in sich abgeschlossen ist; der Name "
"darf nicht mit dem eines integrierten Design übereinstimmen und nicht mit "
"\"backup-\" beginnen"
#, fuzzy
#| msgid "raw[rename]: rename a filter" #| msgid "raw[rename]: rename a filter"
msgid "raw[rename]: rename a user theme file" msgid "raw[rename]: rename a user theme file"
msgstr "raw[rename]: benennt einen Filter um" msgstr "raw[rename]: Umbenennen einer Benutzer-Design-Datei"
#, fuzzy
#| msgid "raw[del]: delete a server" #| msgid "raw[del]: delete a server"
msgid "raw[del]: delete a user theme file" msgid "raw[del]: delete a user theme file"
msgstr "raw[del]: entfernt einen Server" msgstr "raw[del]: löschen einer Benutzer-Design-Datei"
msgid "" msgid ""
"raw[info]: display details on a theme (name, description, creation date, " "raw[info]: display details on a theme (name, description, creation date, "
"WeeChat version, number of option overrides)" "WeeChat version, number of option overrides)"
msgstr "" msgstr ""
"raw[info]: Details zu einem Theme anzeigen (Name, Beschreibung, "
"Erstellungsdatum, WeeChat-Version, Anzahl der überschriebenen Optionen)"
#, fuzzy
#| msgid "name: name of trigger" #| msgid "name: name of trigger"
msgid "name: name of a theme" msgid "name: name of a theme"
msgstr "name: Name des Triggers" msgstr "name: Name eines Themes/Designs"
msgid "" msgid ""
"Themes are named bundles of option overrides. Built-in themes are registered " "Themes are named bundles of option overrides. Built-in themes are registered "
"in memory by core/plugins/scripts; user themes are read from files in " "in memory by core/plugins/scripts; user themes are read from files in "
"directory \"themes\" inside the WeeChat configuration directory." "directory \"themes\" inside the WeeChat configuration directory."
msgstr "" msgstr ""
"Themes sind Pakete von Options-Überschreibungen. Integrierte Themes werden "
"von core/Erweiterungen/Skripts im Arbeitsspeicher registriert; "
"benutzerdefinierte Themes werden aus Dateien im Unterverzeichnis \"themes\" "
"des WeeChat-Konfigurationsverzeichnisses geladen."
msgid "" msgid ""
"By default, `/theme apply` command creates a backup of current themable " "By default, `/theme apply` command creates a backup of current themable "
@@ -4178,6 +4188,11 @@ msgid ""
"backup-<timestamp>`. This is controlled by the option " "backup-<timestamp>`. This is controlled by the option "
"weechat.look.theme_backup." "weechat.look.theme_backup."
msgstr "" msgstr ""
"Standardmäßig erstellt der Befehl `/theme apply` vor der Anwendung ein "
"Backup der aktuellen, anpassbaren Werte im Verzeichnis \"themes\" "
"(Dateiname: \"backup-<Zeitstempel>.theme\"); der vorherige Zustand lässt "
"sich mit `/theme apply backup-<Zeitstempel>` wiederherstellen. Dies wird "
"über die Option weechat.look.theme_backup gesteuert."
msgid "toggle value of a config option" msgid "toggle value of a config option"
msgstr "den Wert einer Konfigurationsoption umschalten" msgstr "den Wert einer Konfigurationsoption umschalten"
@@ -4837,13 +4852,17 @@ msgid "names of layouts"
msgstr "Namen der Layouts" msgstr "Namen der Layouts"
msgid "names of themes (built-ins + user files + backups)" msgid "names of themes (built-ins + user files + backups)"
msgstr "" msgstr "Namen der Themes (integrierte Themes + Benutzerdateien + Backups)"
msgid "names of user theme files (without built-ins and backups)" msgid "names of user theme files (without built-ins and backups)"
msgstr "" msgstr ""
"Namen der benutzerdefinierten Themendateien (ohne integrierte Dateien und "
"Backups)"
msgid "names of theme files on disk (user files + backups, no built-ins)" msgid "names of theme files on disk (user files + backups, no built-ins)"
msgstr "" msgstr ""
"Namen der Theme-Dateien auf dem Datenträger (Benutzerdateien + Backups, "
"keine integrierten Dateien)"
msgid "names of secured data (file sec.conf, section data)" msgid "names of secured data (file sec.conf, section data)"
msgstr "Namen der geschützten Daten (Datei sec.conf, section data)" msgstr "Namen der geschützten Daten (Datei sec.conf, section data)"
@@ -6062,6 +6081,9 @@ msgid ""
"not change manually); informational only, the theme is not re-applied at " "not change manually); informational only, the theme is not re-applied at "
"startup" "startup"
msgstr "" msgstr ""
"Name des zuletzt mit dem Befehl /theme angewendeten Design (wird automatisch "
"gesetzt, nicht manuell ändern); dient nur zur Information, das Design wird "
"beim Start nicht erneut angewendet"
msgid "" msgid ""
"create a backup theme file with the current themable options before applying " "create a backup theme file with the current themable options before applying "
@@ -6070,6 +6092,13 @@ msgid ""
"\"themes\" inside the WeeChat configuration directory and can be restored " "\"themes\" inside the WeeChat configuration directory and can be restored "
"with the command: `/theme apply backup-<timestamp>`" "with the command: `/theme apply backup-<timestamp>`"
msgstr "" msgstr ""
"Erstellen Sie eine Backup-Datei des Themes mit den aktuellen anpassbaren "
"Optionen, bevor Sie ein Theme mit dem Befehl /theme anwenden; falls die "
"Backup-Datei nicht geschrieben werden kann, wird der Vorgang abgebrochen (es "
"werden keine Optionen geändert). Die Backup-Datei wird im Verzeichnis "
"\"themes\" innerhalb des WeeChat-Konfigurationsverzeichnisses gespeichert "
"und kann mit dem Befehl `/theme apply backup-<Zeitstempel>` "
"wiederhergestellt werden"
msgid "" msgid ""
"time format for dates converted to strings and displayed in messages (see " "time format for dates converted to strings and displayed in messages (see "
@@ -7170,120 +7199,118 @@ msgid "Resource usage (see \"man getrusage\" for help):"
msgstr "Ressourcennutzung (siehe „man getrusage“ für Hilfe):" msgstr "Ressourcennutzung (siehe „man getrusage“ für Hilfe):"
msgid "WeeChat default theme for light-background terminals" msgid "WeeChat default theme for light-background terminals"
msgstr "" msgstr "WeeChat-Standarddesign für Terminals mit hellem Hintergrund"
msgid "Automatic backup" msgid "Automatic backup"
msgstr "" msgstr "Automatische Datensicherung"
#, fuzzy, c-format #, c-format
#| msgid "%sKey \"%s\" not found" #| msgid "%sKey \"%s\" not found"
msgid "%sTheme: option \"%s\" not found, skipped" msgid "%sTheme: option \"%s\" not found, skipped"
msgstr "%sTastenbelegung \"%s\" nicht gefunden" msgstr "%sTheme: Option \"%s\" nicht gefunden, übersprungen"
#, fuzzy, c-format #, c-format
#| msgid "%s: script \"%s\" is not installed" #| msgid "%s: script \"%s\" is not installed"
msgid "%sTheme: option \"%s\" is not themable, skipped" msgid "%sTheme: option \"%s\" is not themable, skipped"
msgstr "%s: Skript \"%s\" ist nicht installiert" msgstr "%sTheme: Option \"%s\" ist nicht anpassbar, übersprungen"
#, c-format #, c-format
msgid "%s%s: line %d: malformed section header" msgid "%s%s: line %d: malformed section header"
msgstr "" msgstr "%s%s: Zeile %d: fehlerhafter Kopf der Sektion"
#, fuzzy, c-format #, c-format
#| msgid "%sWarning: %s, line %d: ignoring unknown section identifier (\"%s\")"
msgid "%s%s: line %d: ignoring unknown section \"%s\"" msgid "%s%s: line %d: ignoring unknown section \"%s\""
msgstr "%sWarnung: %s, Zeile %d: unbekannte Sektion wird ignoriert (\"%s\")" msgstr "%s%s: Zeile %d: unbekannte Sektion \"%s\" wird ignoriert"
#, c-format #, c-format
msgid "%s%s: line %d: missing '=' separator" msgid "%s%s: line %d: missing '=' separator"
msgstr "" msgstr "%s%s: Zeile %d: fehlendes '=' Trennzeichen"
#, fuzzy, c-format #, c-format
#| msgid "" #| msgid ""
#| "%sWarning: %s, line %d: ignoring unknown option for section \"%s\": %s" #| "%sWarning: %s, line %d: ignoring unknown option for section \"%s\": %s"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "" msgstr "%s%s: Zeile %d: unbekannter [info] Schlüssel \"%s\" wird ignoriert"
"%sWarnung: %s, Zeile %d: ignoriert unbekannte Einstellung für Sektion "
"\"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: Datei \"%s\" Analyse nicht möglich"
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
"weechat.look.theme_backup to force)" "weechat.look.theme_backup to force)"
msgstr "" msgstr ""
"%sSicherung des Design konnte nicht erstellt werden; Anwenden abgebrochen "
"(Option wechat.look.theme_backup deaktivieren, um den Vorgang zu erzwingen)"
#, c-format #, c-format
msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s" msgid "Previous state saved as theme \"%s\"; to restore: /theme apply %s"
msgstr "" msgstr ""
"Vorheriger Zustand als Design \"%s\" gespeichert; zum Wiederherstellen: /"
"theme apply %s"
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting reset (disable option " "%sUnable to create theme backup; aborting reset (disable option "
"weechat.look.theme_backup to force)" "weechat.look.theme_backup to force)"
msgstr "" msgstr ""
"%sTheme-Sicherung konnte nicht erstellt werden; Zurücksetzen wird "
"abgebrochen (Option wechat.look.theme_backup deaktivieren, um den Vorgang zu "
"erzwingen)"
#, fuzzy, c-format #, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat" #| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for automatic backups" msgid "%sName \"%s\" is reserved for automatic backups"
msgstr "%sDer Buffer-Name \"%s\" ist für WeeChat reserviert" msgstr "%sName \"%s\" ist für automatische Sicherungen reserviert"
#, fuzzy, c-format #, c-format
#| msgid "%sBuffer name \"%s\" is reserved for WeeChat" #| msgid "%sBuffer name \"%s\" is reserved for WeeChat"
msgid "%sName \"%s\" is reserved for a built-in theme" msgid "%sName \"%s\" is reserved for a built-in theme"
msgstr "%sDer Buffer-Name \"%s\" ist für WeeChat reserviert" msgstr "%sName \"%s\" ist reserviert für ein integriertes Design"
#, fuzzy, c-format #, c-format
#| msgid "%s%s: unable to parse file \"%s\"" #| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to save theme \"%s\"" msgid "%sFailed to save theme \"%s\""
msgstr "%s%s: Datei \"%s\" Analyse nicht möglich" msgstr "%sSpeichern des Designs \"%s\" fehlgeschlagen"
#, fuzzy, c-format #, c-format
#| msgid "Option \"%s%s%s\":" #| msgid "Option \"%s%s%s\":"
msgid "Theme saved to: %s" msgid "Theme saved to: %s"
msgstr "Einstellung \"%s%s%s\":" msgstr "Design gespeichert unter: %s"
#, fuzzy, c-format #, c-format
#| msgid "%sCannot create file \"%s\"" #| msgid "%sCannot create file \"%s\""
msgid "%sCannot rename built-in theme \"%s\"" msgid "%sCannot rename built-in theme \"%s\""
msgstr "%sDie Datei \"%s\" kann nicht erstellt werden" msgstr "%sIntegriertes Design \"%s\" kann nicht umbenannt werden"
#, c-format #, c-format
msgid "%sNew name is the same as old name" msgid "%sNew name is the same as old name"
msgstr "" msgstr "%sDer neue Name ist derselbe wie der alte Name"
#, fuzzy, c-format #, c-format
#| msgid "%sBar \"%s\" already exists" #| msgid "%sBar \"%s\" already exists"
msgid "%sTheme \"%s\" already exists" msgid "%sTheme \"%s\" already exists"
msgstr "%sBar \"%s\" existiert bereits" msgstr "%sDesign \"%s\" existiert schon"
#, fuzzy, c-format #, c-format
#| msgid "%sUnable to rename filter \"%s\" to \"%s\"" #| msgid "%sUnable to rename filter \"%s\" to \"%s\""
msgid "%sFailed to rename theme \"%s\" to \"%s\"" msgid "%sFailed to rename theme \"%s\" to \"%s\""
msgstr "%sUmbenennung des Filters von \"%s\" in \"%s\" nicht möglich" msgstr "%sUmbenennung des Design \"%s\" zu \"%s\" fehlgeschlagen"
#, fuzzy, c-format #, c-format
#| msgid "Trigger \"%s\" renamed to \"%s\""
msgid "Theme \"%s\" renamed to \"%s\"" msgid "Theme \"%s\" renamed to \"%s\""
msgstr "Trigger \"%s\" wurde umbenannt. Der neue Name lautet \"%s\"" msgstr "Design \"%s\" umbenannt zu \"%s\""
#, fuzzy, c-format #, c-format
#| msgid "%sCannot create file \"%s\"" #| msgid "%sCannot create file \"%s\""
msgid "%sCannot delete built-in theme \"%s\"" msgid "%sCannot delete built-in theme \"%s\""
msgstr "%sDie Datei \"%s\" kann nicht erstellt werden" msgstr "%sIntegriertes Design \"%s\" kann nicht gelöscht werden"
#, fuzzy, c-format #, c-format
#| msgid "%s%s: unable to parse file \"%s\"" #| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to delete theme \"%s\"" msgid "%sFailed to delete theme \"%s\""
msgstr "%s%s: Datei \"%s\" Analyse nicht möglich" msgstr "%sDas Design \"%s\" konnte nicht gelöscht werden"
#, c-format #, c-format
msgid "Theme deleted: %s" msgid "Theme deleted: %s"
msgstr "" msgstr "Design gelöscht: %s"
#, c-format #, c-format
msgid "%sError upgrading WeeChat with file \"%s\":" msgid "%sError upgrading WeeChat with file \"%s\":"
@@ -7448,35 +7475,46 @@ msgid "WeeChat is running in headless mode (ctrl-c to quit)."
msgstr "WeeChat läuft im Hintergrundmodus (ctrl-c zum Beenden)." msgstr "WeeChat läuft im Hintergrundmodus (ctrl-c zum Beenden)."
msgid "Welcome to WeeChat!" msgid "Welcome to WeeChat!"
msgstr "" msgstr "Willkommen bei WeeChat!"
msgid "" msgid ""
"If you are discovering WeeChat, it is recommended to read at least the " "If you are discovering WeeChat, it is recommended to read at least the "
"quickstart guide, and the user's guide if you have some time; they explain " "quickstart guide, and the user's guide if you have some time; they explain "
"main WeeChat concepts." "main WeeChat concepts."
msgstr "" msgstr ""
"Wenn Sie WeeChat gerade erst kennenlernen, empfiehlt es sich, zumindest die "
"Schnellstartanleitung zu lesen und bei Gelegenheit auch das "
"Benutzerhandbuch , da darin die grundlegenden Konzepte von WeeChat "
"erläutert werden."
#, c-format #, c-format
msgid "All WeeChat docs are available at: %s" msgid "All WeeChat docs are available at: %s"
msgstr "" msgstr "Alle WeeChat-Dokumente sind verfügbar unter: %s"
msgid "" msgid ""
"Moreover, there is inline help with /help on all commands and options (use " "Moreover, there is inline help with /help on all commands and options (use "
"Tab key to complete the name)." "Tab key to complete the name)."
msgstr "" msgstr ""
"Darüber hinaus steht für alle Befehle und Optionen eine integrierte Hilfe "
"mittels /help zur Verfügung (verwenden Sie die Tab-Taste, um den Namen zu "
"vervollständigen)."
msgid "The command /fset can help to customize WeeChat." msgid "The command /fset can help to customize WeeChat."
msgstr "" msgstr "Der Befehl /fset kann dabei helfen, WeeChat anzupassen."
msgid "" msgid ""
"You can add and connect to an IRC server with /server and /connect commands " "You can add and connect to an IRC server with /server and /connect commands "
"(see /help server)." "(see /help server)."
msgstr "" msgstr ""
"Sie können einen IRC-Server hinzufügen und sich mit ihm verbinden, indem Sie "
"die Befehle /server und /connect verwenden (siehe /help server)."
msgid "" msgid ""
"The \"light\" theme will be automatically applied. Use /theme reset to " "The \"light\" theme will be automatically applied. Use /theme reset to "
"switch back to the default dark theme." "switch back to the default dark theme."
msgstr "" msgstr ""
"Ein \"helles\" Design wird automatisch angewendet. Verwende /theme reset, um "
"zum standardmäßigen dunklen Design zurückzukehren."
#. TRANSLATORS: the "under %s" can be "under screen" or "under tmux" #. TRANSLATORS: the "under %s" can be "under screen" or "under tmux"
#, c-format #, c-format
@@ -9303,17 +9341,15 @@ msgstr "> `xxx`: zeigt nur Optionen mit \"xxx\" im Namen"
msgid "> `f:xxx`: show only configuration file \"xxx\"" msgid "> `f:xxx`: show only configuration file \"xxx\""
msgstr "> `f:xxx`: zeigt nur Konfigurationsdatei \"xxx\" an" msgstr "> `f:xxx`: zeigt nur Konfigurationsdatei \"xxx\" an"
#, fuzzy
#| msgid ""
#| "> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/"
#| "integer/string/color/enum)"
msgid "" msgid ""
"> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/" "> `t:xxx`: show only type \"xxx\" (bool/int/str/col/enum or boolean/integer/"
"string/color/enum); the special value \"themable\" can be used to show all " "string/color/enum); the special value \"themable\" can be used to show all "
"options that can be used in themes, regardless of type" "options that can be used in themes, regardless of type"
msgstr "" msgstr ""
"> `t:xxx`: zeigt nur Optionen des entsprechenden Typs, \"xxx\" (bool/int/str/" "> `t:xxx`: zeigt nur Optionen des entsprechenden Typs, \"xxx\" (bool/int/str/"
"col/enum oder boolean/Ganzzahl/Zeichenkette/Farbe/Aufzählung)" "col/enum oder boolean/Ganzzahl/Zeichenkette/Farbe/Aufzählung); Der spezielle "
"Wert \"themable\" kann verwendet werden, um alle Optionen anzuzeigen, die in "
"Themes genutzt werden können unabhängig vom Typ"
msgid "> `d`: show only changed options" msgid "> `d`: show only changed options"
msgstr "> `d`: zeigt nur Optionen, die verändert wurden" msgstr "> `d`: zeigt nur Optionen, die verändert wurden"
+2 -7
View File
@@ -24,8 +24,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-06-28 08:46+0200\n" "PO-Revision-Date: 2026-07-05 12:29+0200\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: Spanish <weechat-dev@nongnu.org>\n"
"Language: es\n" "Language: es\n"
@@ -6522,11 +6522,6 @@ msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "" msgstr ""
"%sAtención: %s, línea %d: opción desconocida para la sección \"%s\": %s" "%sAtención: %s, línea %d: opción desconocida para la sección \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: no es posible analizar el archivo \"%s\""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -54
View File
@@ -23,8 +23,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-07-04 22:02+0200\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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: French <flashcode@flashtux.org>\n"
"Language: fr\n" "Language: fr\n"
@@ -7087,10 +7087,6 @@ msgstr "%s%s: ligne %d: séparateur '=' manquant"
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s%s: ligne %d: clé [info] \"%s\" inconnue, ignorée" msgstr "%s%s: ligne %d: clé [info] \"%s\" inconnue, ignorée"
#, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr "%sÉchec de l'analyse du fichier de thème \"%s\""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
@@ -19043,51 +19039,3 @@ msgid ""
msgstr "" msgstr ""
"%s%s : impossible d'accepter de continuer le fichier \"%s\" (port : %d, " "%s%s : impossible d'accepter de continuer le fichier \"%s\" (port : %d, "
"position de départ : %llu) : xfer non trouvé ou non prêt pour le transfert" "position de départ : %llu) : xfer non trouvé ou non prêt pour le transfert"
#~ msgid "Automatic backup written before /theme apply"
#~ msgstr "Sauvegarde automatique écrite avant /theme apply"
#~ msgid ""
#~ "Welcome to WeeChat!\n"
#~ "\n"
#~ "If you are discovering WeeChat, it is recommended to read at least the "
#~ "quickstart guide, and the user's guide if you have some time; they "
#~ "explain main WeeChat concepts.\n"
#~ "All WeeChat docs are available at: https://weechat.org/doc/\n"
#~ "\n"
#~ "Moreover, there is inline help with /help on all commands and options "
#~ "(use Tab key to complete the name).\n"
#~ "The command /fset can help to customize WeeChat.\n"
#~ "\n"
#~ "You can add and connect to an IRC server with /server and /connect "
#~ "commands (see /help server)."
#~ msgstr ""
#~ "Bienvenue dans WeeChat !\n"
#~ "\n"
#~ "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 "
#~ "expliquent les concepts principaux de WeeChat.\n"
#~ "Toutes les documentations WeeChat sont disponibles ici : https://"
#~ "weechat.org/doc/\n"
#~ "\n"
#~ "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"
#~ "La commande /fset peut aider à paramétrer WeeChat.\n"
#~ "\n"
#~ "Vous pouvez ajouter et vous connecter à un serveur IRC avec les "
#~ "commandes /server et /connect (voir /help server)."
#~ msgid ""
#~ "raw[delete]: delete a user theme file (refuses to delete built-in themes, "
#~ "which have no file)"
#~ msgstr "raw[delete] : supprimer un fichier thème de l'utilisateur"
#~ msgid "No theme registered"
#~ msgstr "Aucun thème enregistré"
#~ msgid ""
#~ "raw[list]: list registered themes (default action with no argument); "
#~ "active theme is marked with \"->\""
#~ msgstr ""
#~ "raw[list] : afficher les thèmes enregistrés (sans paramètre, cette liste "
#~ "est affichée), le thème actif est marqué avec \"->\""
+2 -6
View File
@@ -22,8 +22,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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: Hungarian <weechat-dev@nongnu.org>\n"
"Language: hu\n" "Language: hu\n"
@@ -6030,10 +6030,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s %s, %d. sor: ismeretlen csoportazonosító (\"%s\")\n" msgstr "%s %s, %d. sor: ismeretlen csoportazonosító (\"%s\")\n"
#, fuzzy, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -7
View File
@@ -22,8 +22,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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: Italian <weechat-dev@nongnu.org>\n"
"Language: it\n" "Language: it\n"
@@ -6510,11 +6510,6 @@ msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "" msgstr ""
"%sAttenzione: %s, riga %d: opzione sconosciuta per la sezione \"%s\": %s" "%sAttenzione: %s, riga %d: opzione sconosciuta per la sezione \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: impossibile analizzare il file \"%s\""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -7
View File
@@ -22,8 +22,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-05-30 14:02+0200\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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 <weechat-dev@nongnu.org>\n"
"Language: ja\n" "Language: ja\n"
@@ -6686,11 +6686,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s警告: %s、行 %d: セクション \"%s\" の無効なオプション: %s" msgstr "%s警告: %s、行 %d: セクション \"%s\" の無効なオプション: %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: ファイル \"%s\" を解析できません"
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -7
View File
@@ -23,8 +23,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-06-28 08:55+0200\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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: Polish <soltys@soltys.info>\n"
"Language: pl\n" "Language: pl\n"
@@ -6867,11 +6867,6 @@ msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "" msgstr ""
"%sOstrzeżenie: %s, linia %d: ignoruje nieznaną opcję dla sekcji \"%s\": %s" "%sOstrzeżenie: %s, linia %d: ignoruje nieznaną opcję dla sekcji \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: nie można przetworzyć pliku \"%s\""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -7
View File
@@ -22,8 +22,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-06-28 08:48+0200\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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 <weechat-dev@nongnu.org>\n"
"Language: pt\n" "Language: pt\n"
@@ -6742,11 +6742,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sAviso: %s, linha %d: opção desconhecida na secção \"%s\": %s" msgstr "%sAviso: %s, linha %d: opção desconhecida na secção \"%s\": %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: não foi possível analisar o ficheiro \"%s\""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -7
View File
@@ -46,8 +46,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-06-28 08:49+0200\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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: Portuguese (Brazil) <weechat-dev@nongnu.org>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
@@ -6408,11 +6408,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sAviso: %s, linha %d: opção \"%s\" desconhecido para seção \"%s\"" msgstr "%sAviso: %s, linha %d: opção \"%s\" desconhecido para seção \"%s\""
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: não foi possível interpretar arquivo \"%s\""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -6
View File
@@ -23,8 +23,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-03-08 08:59+0100\n" "PO-Revision-Date: 2026-07-05 12:28+0200\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: Russian <weechat-dev@nongnu.org>\n"
"Language: ru\n" "Language: ru\n"
@@ -6067,10 +6067,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%s %s, строка %d: неизвестный идентификатор секции (\"%s\")\n" msgstr "%s %s, строка %d: неизвестный идентификатор секции (\"%s\")\n"
#, fuzzy, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr "Не могу записать лог-файл \"%s\"\n"
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -7
View File
@@ -22,8 +22,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-06-28 08:52+0200\n" "PO-Revision-Date: 2026-07-05 12:29+0200\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: Serbian <ivan.pesic@gmail.com>\n"
"Language: sr\n" "Language: sr\n"
@@ -6849,11 +6849,6 @@ msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "" msgstr ""
"%sУпозорење: %s, линија %d: игнорише се непозната опција за одељак „%s”: %s" "%sУпозорење: %s, линија %d: игнорише се непозната опција за одељак „%s”: %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: није успело парсирање фајла „%s”"
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+2 -7
View File
@@ -23,8 +23,8 @@ 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-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\n"
"PO-Revision-Date: 2026-06-28 08:53+0200\n" "PO-Revision-Date: 2026-07-05 12:29+0200\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: Turkish <emir_sari@icloud.com>\n"
"Language: tr\n" "Language: tr\n"
@@ -6646,11 +6646,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "%sUyarı: %s, %d. satır: \"%s\" bölümü için bilinmeyen seçenek: %s" msgstr "%sUyarı: %s, %d. satır: \"%s\" bölümü için bilinmeyen seçenek: %s"
#, fuzzy, c-format
#| msgid "%s%s: unable to parse file \"%s\""
msgid "%sFailed to parse theme file \"%s\""
msgstr "%s%s: \"%s\" dosyası ayrıştırılamıyor"
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+1 -5
View File
@@ -23,7 +23,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2026-07-04 22:01+0200\n" "POT-Creation-Date: 2026-07-05 12:20+0200\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"
@@ -5624,10 +5624,6 @@ msgstr ""
msgid "%s%s: line %d: ignoring unknown [info] key \"%s\"" msgid "%s%s: line %d: ignoring unknown [info] key \"%s\""
msgstr "" msgstr ""
#, c-format
msgid "%sFailed to parse theme file \"%s\""
msgstr ""
#, c-format #, c-format
msgid "" msgid ""
"%sUnable to create theme backup; aborting apply (disable option " "%sUnable to create theme backup; aborting apply (disable option "
+17 -20
View File
@@ -1700,17 +1700,12 @@ COMMAND_CALLBACK(color)
else else
str_alias = argv[i]; str_alias = argv[i];
} }
str_color[0] = '\0'; snprintf (str_color, sizeof (str_color),
if (str_alias) "%s%s%s%s",
{ (str_alias) ? ";" : "",
strcat (str_color, ";"); (str_alias) ? str_alias : "",
strcat (str_color, str_alias); (str_rgb) ? ";" : "",
} (str_rgb) ? str_rgb : "");
if (str_rgb)
{
strcat (str_color, ";");
strcat (str_color, str_rgb);
}
/* add color alias */ /* add color alias */
snprintf (str_command, sizeof (str_command), snprintf (str_command, sizeof (str_command),
@@ -2948,7 +2943,7 @@ command_help_list_plugin_commands (struct t_weechat_plugin *plugin,
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
int command_found, length, max_length, list_size; int command_found, length, max_length, list_size;
int cols, lines, col, line, index; int cols, lines, col, line, index;
char str_format[64], str_command[256], str_line[2048]; char str_format[64], str_command[256], **str_line;
if (verbose) if (verbose)
{ {
@@ -3051,9 +3046,12 @@ command_help_list_plugin_commands (struct t_weechat_plugin *plugin,
} }
/* display lines with commands, in columns */ /* display lines with commands, in columns */
str_line = string_dyn_alloc (256);
if (str_line)
{
for (line = 0; line < lines; line++) for (line = 0; line < lines; line++)
{ {
str_line[0] = '\0'; string_dyn_copy (str_line, NULL);
for (col = 0; col < cols; col++) for (col = 0; col < cols; col++)
{ {
index = (col * lines) + line; index = (col * lines) + line;
@@ -3061,17 +3059,16 @@ command_help_list_plugin_commands (struct t_weechat_plugin *plugin,
{ {
item = weelist_get (list, index); item = weelist_get (list, index);
if (item) if (item)
{
if (strlen (str_line) + strlen (weelist_string (item)) + 1 < (int)sizeof (str_line))
{ {
snprintf (str_command, sizeof (str_command), snprintf (str_command, sizeof (str_command),
str_format, weelist_string (item)); str_format, weelist_string (item));
strcat (str_line, str_command); string_dyn_concat (str_line, str_command, -1);
} }
} }
} }
gui_chat_printf (NULL, "%s", *str_line);
} }
gui_chat_printf (NULL, "%s", str_line); string_dyn_free (str_line, 1);
} }
} }
@@ -7121,7 +7118,9 @@ COMMAND_CALLBACK(set)
COMMAND_CALLBACK(sys) COMMAND_CALLBACK(sys)
{ {
#ifdef HAVE_MALLOC_TRIM
long size; long size;
#endif
int num_processes; int num_processes;
/* make C compiler happy */ /* make C compiler happy */
@@ -7372,9 +7371,7 @@ COMMAND_CALLBACK(theme)
COMMAND_MIN_ARGS(3, "info"); COMMAND_MIN_ARGS(3, "info");
/* file shadows registry: try user file first */ /* file shadows registry: try user file first */
path = theme_user_file_path (argv[2]); path = theme_user_file_path (argv[2]);
file_theme = NULL; file_theme = (path) ? theme_file_parse (path) : NULL;
if (path && (access (path, R_OK) == 0))
file_theme = theme_file_parse (path);
if (!file_theme) if (!file_theme)
{ {
free (path); free (path);
+2 -4
View File
@@ -4763,6 +4763,8 @@ string_dyn_copy (char **string, const char *new_string)
* if the string had to be extended, or the same pointer if there was enough * if the string had to be extended, or the same pointer if there was enough
* size to concatenate the new string. * size to concatenate the new string.
* *
* In case of error, the dynamic string is left unchanged.
*
* Return: * Return:
* 1: OK * 1: OK
* 0: error * 0: error
@@ -4798,11 +4800,7 @@ string_dyn_concat (char **string, const char *add, int bytes)
new_size_alloc = new_size; new_size_alloc = new_size;
string_realloc = realloc (ptr_string_dyn->string, new_size_alloc); string_realloc = realloc (ptr_string_dyn->string, new_size_alloc);
if (!string_realloc) if (!string_realloc)
{
free (ptr_string_dyn->string);
free (ptr_string_dyn);
return 0; return 0;
}
ptr_string_dyn->string = string_realloc; ptr_string_dyn->string = string_realloc;
ptr_string_dyn->size_alloc = new_size_alloc; ptr_string_dyn->size_alloc = new_size_alloc;
} }
+37 -30
View File
@@ -25,6 +25,8 @@
#include "config.h" #include "config.h"
#endif #endif
#include <errno.h>
#include <fcntl.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@@ -945,18 +947,11 @@ theme_apply (const char *name)
* so user themes have no steady-state memory footprint. * so user themes have no steady-state memory footprint.
*/ */
path = theme_user_file_path (name); path = theme_user_file_path (name);
if (path && (access (path, R_OK) == 0)) if (path)
{
file_theme = theme_file_parse (path); file_theme = theme_file_parse (path);
if (!file_theme)
{
gui_chat_printf (NULL,
_("%sFailed to parse theme file \"%s\""),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
path);
free (path); free (path);
return WEECHAT_RC_ERROR; if (file_theme)
} {
theme = file_theme; theme = file_theme;
} }
else else
@@ -968,11 +963,9 @@ theme_apply (const char *name)
_("%sTheme \"%s\" not found"), _("%sTheme \"%s\" not found"),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
name); name);
free (path);
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
} }
free (path);
/* create a backup of current themable state, if enabled */ /* create a backup of current themable state, if enabled */
if (CONFIG_BOOLEAN(config_look_theme_backup) if (CONFIG_BOOLEAN(config_look_theme_backup)
@@ -1187,7 +1180,7 @@ theme_rename (const char *old_name, const char *new_name)
char *old_path, *new_path, line[2048]; char *old_path, *new_path, line[2048];
FILE *fin, *fout; FILE *fin, *fout;
const char *trimmed; const char *trimmed;
int in_info, name_done; int in_info, name_done, fd;
if (!old_name || !old_name[0] || !new_name || !new_name[0]) if (!old_name || !old_name[0] || !new_name || !new_name[0])
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
@@ -1230,38 +1223,52 @@ theme_rename (const char *old_name, const char *new_name)
old_path = theme_user_file_path (old_name); old_path = theme_user_file_path (old_name);
if (!old_path) if (!old_path)
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
if (access (old_path, R_OK) != 0)
{
gui_chat_printf (NULL,
_("%sTheme \"%s\" not found"),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
old_name);
free (old_path);
return WEECHAT_RC_ERROR;
}
new_path = theme_user_file_path (new_name); new_path = theme_user_file_path (new_name);
if (!new_path) if (!new_path)
{ {
free (old_path); free (old_path);
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
if (access (new_path, F_OK) == 0)
fin = fopen (old_path, "r");
if (!fin)
{ {
gui_chat_printf (NULL, gui_chat_printf (NULL,
_("%sTheme \"%s\" already exists"), _("%sTheme \"%s\" not found"),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
new_name); old_name);
free (old_path); free (old_path);
free (new_path); free (new_path);
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
} }
fin = fopen (old_path, "r"); fd = open (new_path, O_WRONLY | O_CREAT | O_EXCL, 0666);
fout = (fin) ? fopen (new_path, "w") : NULL; if (fd < 0)
if (!fin || !fout)
{ {
if (fin) if (errno == EEXIST)
{
gui_chat_printf (NULL,
_("%sTheme \"%s\" already exists"),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
new_name);
}
else
{
gui_chat_printf (NULL,
_("%sFailed to rename theme \"%s\" to \"%s\""),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR],
old_name, new_name);
}
fclose (fin);
free (old_path);
free (new_path);
return WEECHAT_RC_ERROR;
}
fout = fdopen (fd, "w");
if (!fout)
{
close (fd);
unlink (new_path);
fclose (fin); fclose (fin);
gui_chat_printf (NULL, gui_chat_printf (NULL,
_("%sFailed to rename theme \"%s\" to \"%s\""), _("%sFailed to rename theme \"%s\" to \"%s\""),
+12 -1
View File
@@ -942,7 +942,7 @@ TEST(CoreTheme, Delete)
TEST(CoreTheme, Rename) TEST(CoreTheme, Rename)
{ {
char *src_path, *dst_path; char *src_path = NULL, *dst_path = NULL;
struct stat st; struct stat st;
FILE *file; FILE *file;
char buf[2048]; char buf[2048];
@@ -974,6 +974,17 @@ TEST(CoreTheme, Rename)
/* refuses target that already exists */ /* refuses target that already exists */
LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_dst")); LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_dst"));
LONGS_EQUAL(WEECHAT_RC_ERROR, theme_rename ("rn_src", "rn_dst")); LONGS_EQUAL(WEECHAT_RC_ERROR, theme_rename ("rn_src", "rn_dst"));
/* the refused rename must not have clobbered the existing target */
dst_path = theme_user_file_path ("rn_dst");
CHECK(dst_path != NULL);
file = fopen (dst_path, "r");
CHECK(file != NULL);
len = fread (buf, 1, sizeof (buf) - 1, file);
buf[len] = '\0';
fclose (file);
CHECK(strstr (buf, "name = \"rn_dst\"") != NULL);
free (dst_path);
dst_path = NULL;
LONGS_EQUAL(WEECHAT_RC_OK, theme_delete ("rn_dst")); LONGS_EQUAL(WEECHAT_RC_OK, theme_delete ("rn_dst"));
/* happy path: rename moves the file and rewrites the [info] name */ /* happy path: rename moves the file and rewrites the [info] name */
+1 -1
View File
@@ -41,7 +41,7 @@
# devel-number the devel version as hex number ("0x04010000" for "4.1.0-dev") # devel-number the devel version as hex number ("0x04010000" for "4.1.0-dev")
# #
weechat_stable="4.9.2" weechat_stable="4.9.3"
weechat_devel="4.10.0-dev" weechat_devel="4.10.0-dev"
stable_major=$(echo "${weechat_stable}" | cut -d"." -f1) stable_major=$(echo "${weechat_stable}" | cut -d"." -f1)