diff --git a/doc/de/weechat_user.de.adoc b/doc/de/weechat_user.de.adoc index 95428df21..93c770cd4 100644 --- a/doc/de/weechat_user.de.adoc +++ b/doc/de/weechat_user.de.adoc @@ -2271,13 +2271,9 @@ Save the current themable options as a new user theme file: /theme save mytheme ---- -By default only options whose value differs from their hardcoded -default are written, keeping the file small and focused. To capture -every themable option: - ----- -/theme save mytheme -full ----- +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 diff --git a/doc/en/weechat_user.en.adoc b/doc/en/weechat_user.en.adoc index 7335b6671..5921b526b 100644 --- a/doc/en/weechat_user.en.adoc +++ b/doc/en/weechat_user.en.adoc @@ -2258,13 +2258,9 @@ Save the current themable options as a new user theme file: /theme save mytheme ---- -By default only options whose value differs from their hardcoded -default are written, keeping the file small and focused. To capture -every themable option: - ----- -/theme save mytheme -full ----- +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 diff --git a/doc/fr/weechat_user.fr.adoc b/doc/fr/weechat_user.fr.adoc index 2fc46167d..34a08acbe 100644 --- a/doc/fr/weechat_user.fr.adoc +++ b/doc/fr/weechat_user.fr.adoc @@ -2307,13 +2307,9 @@ thème utilisateur : /theme save monTheme ---- -Par défaut, seules les options dont la valeur diffère de la valeur par -défaut codée en dur sont écrites, ce qui garde le fichier compact et -ciblé. Pour capturer toutes les options modifiables : - ----- -/theme save monTheme -full ----- +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 diff --git a/doc/it/weechat_user.it.adoc b/doc/it/weechat_user.it.adoc index 2a3f3ed5e..3a0292a2d 100644 --- a/doc/it/weechat_user.it.adoc +++ b/doc/it/weechat_user.it.adoc @@ -2513,13 +2513,9 @@ Save the current themable options as a new user theme file: /theme save mytheme ---- -By default only options whose value differs from their hardcoded -default are written, keeping the file small and focused. To capture -every themable option: - ----- -/theme save mytheme -full ----- +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 diff --git a/doc/ja/weechat_user.ja.adoc b/doc/ja/weechat_user.ja.adoc index 670328fe5..9f95bd882 100644 --- a/doc/ja/weechat_user.ja.adoc +++ b/doc/ja/weechat_user.ja.adoc @@ -2449,13 +2449,9 @@ Save the current themable options as a new user theme file: /theme save mytheme ---- -By default only options whose value differs from their hardcoded -default are written, keeping the file small and focused. To capture -every themable option: - ----- -/theme save mytheme -full ----- +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 diff --git a/doc/pl/weechat_user.pl.adoc b/doc/pl/weechat_user.pl.adoc index ff6da1e46..e8f260076 100644 --- a/doc/pl/weechat_user.pl.adoc +++ b/doc/pl/weechat_user.pl.adoc @@ -2265,13 +2265,9 @@ Save the current themable options as a new user theme file: /theme save mytheme ---- -By default only options whose value differs from their hardcoded -default are written, keeping the file small and focused. To capture -every themable option: - ----- -/theme save mytheme -full ----- +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 diff --git a/doc/sr/weechat_user.sr.adoc b/doc/sr/weechat_user.sr.adoc index 0e370ff2b..e9e140c83 100644 --- a/doc/sr/weechat_user.sr.adoc +++ b/doc/sr/weechat_user.sr.adoc @@ -2167,13 +2167,9 @@ Save the current themable options as a new user theme file: /theme save mytheme ---- -By default only options whose value differs from their hardcoded -default are written, keeping the file small and focused. To capture -every themable option: - ----- -/theme save mytheme -full ----- +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 diff --git a/po/cs.po b/po/cs.po index bde82bb6c..a726df2df 100644 --- a/po/cs.po +++ b/po/cs.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-05-30 14:01+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: Czech \n" @@ -3714,8 +3714,8 @@ msgstr "seznam položek polí" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3742,9 +3742,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/de.po b/po/de.po index 2ae173db2..8649f5213 100644 --- a/po/de.po +++ b/po/de.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-06-28 08:28+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -4106,8 +4106,8 @@ msgstr "Verwalten von benutzerdefinierten Bar-Items" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -4141,9 +4141,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/es.po b/po/es.po index 6c1c0b903..269947a57 100644 --- a/po/es.po +++ b/po/es.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-06-28 08:46+0200\n" "Last-Translator: Santiago Forero \n" "Language-Team: Spanish \n" @@ -3806,8 +3806,8 @@ msgstr "lista de elementos de barra" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3834,9 +3834,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/fr.po b/po/fr.po index 0f2e05666..691720039 100644 --- a/po/fr.po +++ b/po/fr.po @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" -"PO-Revision-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" +"PO-Revision-Date: 2026-07-04 21:52+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: French \n" "Language: fr\n" @@ -4031,11 +4031,11 @@ msgstr "gestion des thèmes de couleurs" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgid "" "raw[list]: list registered themes and any *.theme files in the WeeChat " @@ -4067,14 +4067,12 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" "raw[save] : sauvegarder les options de thème dans un fichier .theme " -"dans le répertoire \"themes\" ; par défaut seulement les options dont la " -"valeur diffère de leur valeur par défaut sont écrites, utilisez \"-full\" " -"pour écrire toutes les options ; le nom ne doit pas correspondre à un thème " +"dans le répertoire \"themes\" ; toutes les options de thème sont écrites, le " +"fichier est donc autonome ; le nom ne doit pas correspondre à un thème " "intégré ou démarrer par \"backup-\"" msgid "raw[rename]: rename a user theme file" diff --git a/po/hu.po b/po/hu.po index 4502f89b0..12fb96797 100644 --- a/po/hu.po +++ b/po/hu.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-03-08 08:59+0100\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: Hungarian \n" @@ -3559,8 +3559,8 @@ msgstr "Aliaszok listája:\n" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3586,9 +3586,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/it.po b/po/it.po index 9c64996ec..e2c68c7f5 100644 --- a/po/it.po +++ b/po/it.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-05-30 14:02+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: Italian \n" @@ -3737,8 +3737,8 @@ msgstr "elenco degli elementi barra" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3765,9 +3765,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/ja.po b/po/ja.po index 12d25edf1..84d7eb4c1 100644 --- a/po/ja.po +++ b/po/ja.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-05-30 14:02+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" @@ -3822,8 +3822,8 @@ msgstr "バー要素のリスト" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3850,9 +3850,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/pl.po b/po/pl.po index 8bf5cb211..79071bcf7 100644 --- a/po/pl.po +++ b/po/pl.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-06-28 08:55+0200\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: Polish \n" @@ -3932,8 +3932,8 @@ msgstr "zarządza niestandardowymi elementami pasków" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3966,9 +3966,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/pt.po b/po/pt.po index ed4e49ba7..94ec2623c 100644 --- a/po/pt.po +++ b/po/pt.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-06-28 08:48+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese \n" @@ -3831,8 +3831,8 @@ msgstr "lista de itens da barra" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3859,9 +3859,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/pt_BR.po b/po/pt_BR.po index 4cb938b6d..ac4bc1cd7 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -46,7 +46,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-06-28 08:49+0200\n" "Last-Translator: Érico Nogueira \n" "Language-Team: Portuguese (Brazil) \n" @@ -3751,8 +3751,8 @@ msgstr "lista de itens da barra" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3779,9 +3779,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/ru.po b/po/ru.po index 463372592..058900246 100644 --- a/po/ru.po +++ b/po/ru.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-03-08 08:59+0100\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: Russian \n" @@ -3583,8 +3583,8 @@ msgstr "Список сокращений:\n" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3610,9 +3610,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/sr.po b/po/sr.po index f491dc5bf..c6326d332 100644 --- a/po/sr.po +++ b/po/sr.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-06-28 08:52+0200\n" "Last-Translator: Ivan Pešić \n" "Language-Team: Serbian \n" @@ -3909,8 +3909,8 @@ msgstr "управљање прилагођеним ставкама траке" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3943,9 +3943,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/tr.po b/po/tr.po index ca1c4ff6a..d279f28cf 100644 --- a/po/tr.po +++ b/po/tr.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2026-06-28 08:53+0200\n" "Last-Translator: Emir SARI \n" "Language-Team: Turkish \n" @@ -3768,8 +3768,8 @@ msgstr "özel çubuk ögelerini yönet" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" #, fuzzy @@ -3798,9 +3798,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" #, fuzzy diff --git a/po/weechat.pot b/po/weechat.pot index 673ec72ad..f2b3aad86 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2026-07-04 21:42+0200\n" +"POT-Creation-Date: 2026-07-04 21:47+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -3351,8 +3351,8 @@ msgstr "" #. TRANSLATORS: only text between angle brackets (eg: "") may be translated msgid "" -"[list [-backups]] || apply || reset || save [-full] || rename " -" || del || info " +"[list [-backups]] || apply || reset || save || rename " +" || del || info " msgstr "" msgid "" @@ -3377,9 +3377,8 @@ msgstr "" msgid "" "raw[save]: save current themable options to a file .theme in directory " -"\"themes\"; by default only options whose value differs from their default " -"are written, use \"-full\" to write every themable option; the name must not " -"match a built-in theme or start with \"backup-\"" +"\"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-\"" msgstr "" msgid "raw[rename]: rename a user theme file" diff --git a/src/core/core-command.c b/src/core/core-command.c index 79d068cd5..c21e59af3 100644 --- a/src/core/core-command.c +++ b/src/core/core-command.c @@ -7345,14 +7345,11 @@ COMMAND_CALLBACK(theme) return theme_reset (); } - /* "/theme save [-full]": write a user theme file */ + /* "/theme save ": write a user theme file */ if (string_strcmp (argv[1], "save") == 0) { COMMAND_MIN_ARGS(3, "save"); - return theme_save (argv[2], - ((argc >= 4) - && (string_strcmp (argv[3], "-full") == 0)) - ? 1 : 0); + return theme_save (argv[2]); } /* "/theme rename ": rename a user theme file */ @@ -10093,7 +10090,7 @@ command_init (void) N_("[list [-backups]]" " || apply " " || reset" - " || save [-full]" + " || save " " || rename " " || del " " || info "), @@ -10109,10 +10106,9 @@ command_init (void) 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 " - ".theme in directory \"themes\"; by default only " - "options whose value differs from their default are " - "written, use \"-full\" to write every themable option; " - "the name must not match a built-in theme or start with " + ".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"), N_("raw[del]: delete a user theme file"), @@ -10133,7 +10129,7 @@ command_init (void) "list -backups" " || apply %(theme_themes_all)" " || reset" - " || save %(theme_themes_user) -full" + " || save %(theme_themes_user)" " || rename %(theme_themes_files)" " || del %(theme_themes_user)" " || info %(theme_themes_all)", diff --git a/src/core/core-theme.c b/src/core/core-theme.c index 24985e5ed..a3b47f156 100644 --- a/src/core/core-theme.c +++ b/src/core/core-theme.c @@ -543,13 +543,12 @@ theme_make_backup_name (void) * Write a snapshot of themable options to a .theme file at * "/themes/.theme". * - * The themes directory is created if missing. The file contains an - * [info] section (name, description, date, weechat version) followed by - * an [options] section. + * The themes directory is created if missing. * - * If "diff_only" is non-zero, only options whose value differs from - * their default (config_file_option_has_changed) are written. If zero, - * every themable option is written (full snapshot). + * The file contains an [info] section (name, description, date, weechat version) + * followed by an [options] section. Every themable option is always + * written (full snapshot), so a theme file is self-contained and round-trips + * exactly, regardless of the current configuration. * * Return path to saved file on success, NULL on error. * @@ -557,7 +556,7 @@ theme_make_backup_name (void) */ char * -theme_write_file (const char *name, const char *description, int diff_only) +theme_write_file (const char *name, const char *description) { char *path, *dir, *value, *now; FILE *file; @@ -608,8 +607,6 @@ theme_write_file (const char *name, const char *description, int diff_only) { if (!ptr_option->themable) continue; - if (diff_only && !config_file_option_has_changed (ptr_option)) - continue; value = config_file_option_value_to_string ( ptr_option, 0, 0, 1); fprintf (file, "%s.%s.%s = %s\n", @@ -641,10 +638,7 @@ theme_make_backup (void) name = theme_make_backup_name (); if (!name) return NULL; - path = theme_write_file ( - name, - _("Automatic backup"), - 0); /* full snapshot: backups must round-trip exactly */ + path = theme_write_file (name, _("Automatic backup")); if (!path) { free (name); @@ -1122,16 +1116,16 @@ theme_reset (void) * Save the current themable options to a user theme file. * * Refuse names that match a built-in theme (registered via API) or - * that start with "backup-" (reserved for automatic backups). If - * "full" is non-zero, every themable option is written; otherwise - * only options whose value differs from their default are written. + * that start with "backup-" (reserved for automatic backups). Every + * themable option is written (full snapshot), so the file is + * self-contained and round-trips exactly. * * Return WEECHAT_RC_OK on success, WEECHAT_RC_ERROR on validation or * I/O failure. */ int -theme_save (const char *name, int full) +theme_save (const char *name) { char *path; @@ -1158,7 +1152,7 @@ theme_save (const char *name, int full) return WEECHAT_RC_ERROR; } - path = theme_write_file (name, NULL, (full) ? 0 : 1); + path = theme_write_file (name, NULL); if (!path) { gui_chat_printf (NULL, diff --git a/src/core/core-theme.h b/src/core/core-theme.h index da403d1e8..fee89f314 100644 --- a/src/core/core-theme.h +++ b/src/core/core-theme.h @@ -70,7 +70,7 @@ extern const char *theme_get_override (struct t_theme *theme, 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, int full); +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); diff --git a/tests/unit/core/test-core-theme.cpp b/tests/unit/core/test-core-theme.cpp index c33bbd695..5f2abb305 100644 --- a/tests/unit/core/test-core-theme.cpp +++ b/tests/unit/core/test-core-theme.cpp @@ -48,8 +48,7 @@ extern struct t_theme *theme_alloc (const char *name); extern void theme_free (struct t_theme *theme); extern char *theme_user_file_path (const char *name); extern char *theme_make_backup_name (void); -extern char *theme_write_file (const char *name, const char *description, - int diff_only); +extern char *theme_write_file (const char *name, const char *description); extern char *theme_file_strip_quotes (char *value); extern struct t_theme *theme_file_parse (const char *path); } @@ -341,20 +340,19 @@ TEST(CoreTheme, WriteFile) char *path, *expected_path, line[8192]; FILE *file; int saw_info, saw_name, saw_description, saw_date, saw_weechat; - int saw_options_section, saw_an_option; + int saw_options_section, saw_an_option, full_options; int saw_color_code, saw_string_option, string_option_quoted; - int full_options, diff_options; /* refuse empty/NULL */ - POINTERS_EQUAL(NULL, theme_write_file (NULL, NULL, 0)); - POINTERS_EQUAL(NULL, theme_write_file ("", NULL, 0)); + POINTERS_EQUAL(NULL, theme_write_file (NULL, NULL)); + POINTERS_EQUAL(NULL, theme_write_file ("", NULL)); /* full snapshot: every themable option is written; the returned path matches the expected theme file path */ expected_path = theme_user_file_path ("test_wrt"); CHECK(expected_path != NULL); - path = theme_write_file ("test_wrt", "a description", 0); + path = theme_write_file ("test_wrt", "a description"); CHECK(path != NULL); STRCMP_EQUAL(expected_path, path); free (path); @@ -418,34 +416,6 @@ TEST(CoreTheme, WriteFile) LONGS_EQUAL(1, string_option_quoted); CHECK(full_options > 10); /* core has many themable options */ - unlink (path); - - /* diff-only snapshot in a freshly initialized config writes very - few (typically zero) [options] entries — never more than the - full snapshot */ - path = theme_write_file ("test_wrt", NULL, 1); - CHECK(path != NULL); - STRCMP_EQUAL(expected_path, path); - free (path); - - path = expected_path; - - file = fopen (path, "r"); - CHECK(file != NULL); - diff_options = 0; - saw_options_section = 0; - while (fgets (line, sizeof (line) - 1, file)) - { - if (strncmp (line, "[options]", 9) == 0) - saw_options_section = 1; - else if (saw_options_section - && (strchr (line, '=') != NULL) - && (strchr (line, '.') != NULL)) - diff_options++; - } - fclose (file); - CHECK(diff_options < full_options); - unlink (path); free (path); } @@ -627,7 +597,7 @@ TEST(CoreTheme, ApplyFileShadowsBuiltin) hashtable_free (overrides); /* drop a same-named user file with a DIFFERENT value */ - LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("user_throwaway", 0)); /* ensures themes dir exists */ + LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("user_throwaway")); /* ensures themes dir exists */ path = theme_user_file_path ("shadow_test"); CHECK(path != NULL); f = fopen (path, "w"); @@ -912,28 +882,18 @@ TEST(CoreTheme, Save) struct stat st; /* NULL / empty => error, no file */ - LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save (NULL, 0)); - LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("", 0)); + LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save (NULL)); + LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("")); /* reserved "backup-" prefix => error */ - LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("backup-anything", 0)); - LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("backup-anything", 1)); + LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("backup-anything")); /* name colliding with a built-in is refused */ theme_register (NULL, NULL, "dark", NULL); - LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("dark", 0)); - LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("dark", 1)); + LONGS_EQUAL(WEECHAT_RC_ERROR, theme_save ("dark")); - /* happy path: sparse save => file exists */ - LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("save_test", 0)); - path = theme_user_file_path ("save_test"); - CHECK(path != NULL); - LONGS_EQUAL(0, stat (path, &st)); - unlink (path); - free (path); - - /* happy path: full snapshot => file exists, bigger than sparse */ - LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("save_test", 1)); + /* happy path: full snapshot => file exists, with options written */ + LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("save_test")); path = theme_user_file_path ("save_test"); CHECK(path != NULL); LONGS_EQUAL(0, stat (path, &st)); @@ -965,7 +925,7 @@ TEST(CoreTheme, Delete) /* happy path: write a file via theme_save (also ensures the themes directory exists), delete it, confirm it is gone */ - LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("del_test", 0)); + LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("del_test")); path = theme_user_file_path ("del_test"); CHECK(path != NULL); LONGS_EQUAL(0, stat (path, &st)); @@ -999,7 +959,7 @@ TEST(CoreTheme, Rename) LONGS_EQUAL(WEECHAT_RC_ERROR, theme_rename ("dark", "renamed")); /* refuses target == reserved "backup-" prefix */ - LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_src", 0)); + LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_src")); LONGS_EQUAL(WEECHAT_RC_ERROR, theme_rename ("rn_src", "backup-foo")); /* refuses target == built-in name */ @@ -1012,7 +972,7 @@ TEST(CoreTheme, Rename) LONGS_EQUAL(WEECHAT_RC_ERROR, theme_rename ("does_not_exist", "rn_dst")); /* refuses target that already exists */ - LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_dst", 0)); + LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_dst")); LONGS_EQUAL(WEECHAT_RC_ERROR, theme_rename ("rn_src", "rn_dst")); LONGS_EQUAL(WEECHAT_RC_OK, theme_delete ("rn_dst")); @@ -1038,7 +998,7 @@ TEST(CoreTheme, Rename) CHECK(strstr (buf, "name = \"rn_src\"") == NULL); /* if weechat.look.theme pointed at the old name, the label moves too */ - LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_active", 0)); + LONGS_EQUAL(WEECHAT_RC_OK, theme_save ("rn_active")); config_file_option_set (config_look_theme, "rn_active", 1); LONGS_EQUAL(WEECHAT_RC_OK, theme_rename ("rn_active", "rn_moved")); STRCMP_EQUAL("rn_moved", CONFIG_STRING(config_look_theme));