From 466dbbe75b0fe32b9e647adebc7de06ea1b835fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Fri, 17 Aug 2018 19:44:41 +0200 Subject: core: add option "-P" (or "--plugins") to customize the plugins to load at startup If given, the option replaces the option weechat.plugin.autoload. --- ChangeLog.adoc | 1 + doc/cs/cmdline_options.cs.adoc | 5 +++++ doc/cs/weechat-headless.1.cs.adoc | 3 ++- doc/cs/weechat.1.cs.adoc | 3 ++- doc/de/cmdline_options.de.adoc | 5 +++++ doc/de/weechat-headless.1.de.adoc | 3 ++- doc/de/weechat.1.de.adoc | 3 ++- doc/en/cmdline_options.en.adoc | 4 ++++ doc/en/weechat-headless.1.en.adoc | 2 +- doc/en/weechat.1.en.adoc | 2 +- doc/fr/cmdline_options.fr.adoc | 4 ++++ doc/fr/weechat-headless.1.fr.adoc | 2 +- doc/fr/weechat.1.fr.adoc | 2 +- doc/it/cmdline_options.it.adoc | 5 +++++ doc/it/weechat-headless.1.it.adoc | 3 ++- doc/it/weechat.1.it.adoc | 3 ++- doc/ja/cmdline_options.ja.adoc | 5 +++++ doc/ja/weechat-headless.1.ja.adoc | 3 ++- doc/ja/weechat.1.ja.adoc | 3 ++- doc/pl/cmdline_options.pl.adoc | 5 +++++ doc/pl/weechat-headless.1.pl.adoc | 3 ++- doc/pl/weechat.1.pl.adoc | 3 ++- doc/ru/cmdline_options.ru.adoc | 5 +++++ doc/ru/weechat-headless.1.ru.adoc | 3 ++- doc/ru/weechat.1.ru.adoc | 3 ++- po/cs.po | 5 ++++- po/de.po | 5 ++++- po/es.po | 4 +++- po/fr.po | 8 ++++++-- po/hu.po | 4 +++- po/it.po | 4 +++- po/ja.po | 5 ++++- po/pl.po | 5 ++++- po/pt.po | 5 ++++- po/pt_BR.po | 4 +++- po/ru.po | 4 +++- po/tr.po | 4 +++- po/weechat.pot | 4 +++- src/core/wee-command.c | 8 ++++---- src/core/weechat.c | 31 +++++++++++++++++++++++++++---- src/plugins/plugin.c | 29 +++++++++++++++-------------- src/plugins/plugin.h | 8 +++++--- tests/tests.cpp | 2 +- 43 files changed, 166 insertions(+), 56 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 64fed1c84..d2748de10 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -20,6 +20,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] New features:: + * core: add option "-P" (or "--plugins") to customize the plugins to load at startup * core: allow partial buffer name in command /buffer close (issue #1226) * api: add function hook_line * trigger: allow creation of temporary variables with the regex diff --git a/doc/cs/cmdline_options.cs.adoc b/doc/cs/cmdline_options.cs.adoc index 3711df278..95515205e 100644 --- a/doc/cs/cmdline_options.cs.adoc +++ b/doc/cs/cmdline_options.cs.adoc @@ -26,6 +26,11 @@ *-p*, *--no-plugin*:: Vypne automatické nahrání pluginů. +// TRANSLATION MISSING +*-P*, *--plugins* __:: + Load only these plugins at startup (see /help weechat.plugin.autoload). + If this option is given, the option weechat.plugin.autoload is not used. + *-r*, *--run-command* __:: Spustí příkaz(y) po startu (více přůkazů může být odděleno středníky). diff --git a/doc/cs/weechat-headless.1.cs.adoc b/doc/cs/weechat-headless.1.cs.adoc index daacbe011..9c33e1619 100644 --- a/doc/cs/weechat-headless.1.cs.adoc +++ b/doc/cs/weechat-headless.1.cs.adoc @@ -14,8 +14,9 @@ weechat-headless - the extensible chat client (headless version) == PŘEHLED +// TRANSLATION MISSING [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/cs/weechat.1.cs.adoc b/doc/cs/weechat.1.cs.adoc index 3b1ca7bce..d7b9da77a 100644 --- a/doc/cs/weechat.1.cs.adoc +++ b/doc/cs/weechat.1.cs.adoc @@ -13,8 +13,9 @@ weechat - the extensible chat client == PŘEHLED +// TRANSLATION MISSING [verse] -*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/doc/de/cmdline_options.de.adoc b/doc/de/cmdline_options.de.adoc index d42b6e445..281c87fd1 100644 --- a/doc/de/cmdline_options.de.adoc +++ b/doc/de/cmdline_options.de.adoc @@ -24,6 +24,11 @@ *-p*, *--no-plugin*:: unterbindet das Laden der Erweiterungen beim Programmstart. +// TRANSLATION MISSING +*-P*, *--plugins* __:: + Load only these plugins at startup (see /help weechat.plugin.autoload). + If this option is given, the option weechat.plugin.autoload is not used. + *-r*, *--run-command* __:: führt einen oder mehrere Befehle aus, nachdem WeeChat gestartet wurde (mehrere Befehle müssen durch Kommata voneinander getrennt werden). diff --git a/doc/de/weechat-headless.1.de.adoc b/doc/de/weechat-headless.1.de.adoc index b48b1ee0f..ea53f3e4b 100644 --- a/doc/de/weechat-headless.1.de.adoc +++ b/doc/de/weechat-headless.1.de.adoc @@ -12,8 +12,9 @@ weechat-headless - der erweiterbare Chat Client (headless version) == SYNOPSIS +// TRANSLATION MISSING [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/de/weechat.1.de.adoc b/doc/de/weechat.1.de.adoc index 9037f9f68..e6091356c 100644 --- a/doc/de/weechat.1.de.adoc +++ b/doc/de/weechat.1.de.adoc @@ -12,8 +12,9 @@ weechat - der erweiterbare Chat Client == SYNOPSIS +// TRANSLATION MISSING [verse] -*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/doc/en/cmdline_options.en.adoc b/doc/en/cmdline_options.en.adoc index 5a559f895..0c7319d41 100644 --- a/doc/en/cmdline_options.en.adoc +++ b/doc/en/cmdline_options.en.adoc @@ -24,6 +24,10 @@ *-p*, *--no-plugin*:: Disable plugins auto-load. +*-P*, *--plugins* __:: + Load only these plugins at startup (see /help weechat.plugin.autoload). + If this option is given, the option weechat.plugin.autoload is not used. + *-r*, *--run-command* __:: Run command(s) after startup (many commands can be separated by semicolons). diff --git a/doc/en/weechat-headless.1.en.adoc b/doc/en/weechat-headless.1.en.adoc index 2240cb9f7..ab00d84ad 100644 --- a/doc/en/weechat-headless.1.en.adoc +++ b/doc/en/weechat-headless.1.en.adoc @@ -13,7 +13,7 @@ weechat-headless - the extensible chat client (headless version) == SYNOPSIS [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/en/weechat.1.en.adoc b/doc/en/weechat.1.en.adoc index 039224fda..c65b7b8d9 100644 --- a/doc/en/weechat.1.en.adoc +++ b/doc/en/weechat.1.en.adoc @@ -13,7 +13,7 @@ weechat - the extensible chat client == SYNOPSIS [verse] -*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/doc/fr/cmdline_options.fr.adoc b/doc/fr/cmdline_options.fr.adoc index 29a2f75a6..5f105e6b3 100644 --- a/doc/fr/cmdline_options.fr.adoc +++ b/doc/fr/cmdline_options.fr.adoc @@ -25,6 +25,10 @@ *-p*, *--no-plugin*:: Supprimer le chargement automatique des extensions au démarrage. +*-P*, *--plugins* __:: + Charger uniquement ces extensions au démarrage (voir /help weechat.plugin.autoload). + Si cette option est donnée, l'option weechat.plugin.autoload n'est pas utilisée. + *-r*, *--run-command* __:: Lancer la/les commande(s) après le démarrage (plusieurs commandes peuvent être séparées par des points-virgules). diff --git a/doc/fr/weechat-headless.1.fr.adoc b/doc/fr/weechat-headless.1.fr.adoc index b3780df22..6f7952b86 100644 --- a/doc/fr/weechat-headless.1.fr.adoc +++ b/doc/fr/weechat-headless.1.fr.adoc @@ -13,7 +13,7 @@ weechat-headless - le client de discussion extensible (version sans interface) == SYNOPSIS [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/fr/weechat.1.fr.adoc b/doc/fr/weechat.1.fr.adoc index 7a8e3b0ac..90462312d 100644 --- a/doc/fr/weechat.1.fr.adoc +++ b/doc/fr/weechat.1.fr.adoc @@ -13,7 +13,7 @@ weechat - le client de discussion extensible == SYNOPSIS [verse] -*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [extension:option...] +*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [extension:option...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/doc/it/cmdline_options.it.adoc b/doc/it/cmdline_options.it.adoc index 8d0ccb770..d16bdc2c2 100644 --- a/doc/it/cmdline_options.it.adoc +++ b/doc/it/cmdline_options.it.adoc @@ -26,6 +26,11 @@ *-p*, *--no-plugin*:: Disabilita il caricamento automatico dei plugin. +// TRANSLATION MISSING +*-P*, *--plugins* __:: + Load only these plugins at startup (see /help weechat.plugin.autoload). + If this option is given, the option weechat.plugin.autoload is not used. + // TRANSLATION MISSING *-r*, *--run-command* __:: Esegue un comando(i) dopo l'avvio (più comandi possono essere separati da diff --git a/doc/it/weechat-headless.1.it.adoc b/doc/it/weechat-headless.1.it.adoc index 870a6b60b..3f0eb3ab4 100644 --- a/doc/it/weechat-headless.1.it.adoc +++ b/doc/it/weechat-headless.1.it.adoc @@ -14,8 +14,9 @@ weechat-headless - the extensible chat client (headless version) == SYNOPSIS +// TRANSLATION MISSING [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/it/weechat.1.it.adoc b/doc/it/weechat.1.it.adoc index 68e4d5563..e529538b5 100644 --- a/doc/it/weechat.1.it.adoc +++ b/doc/it/weechat.1.it.adoc @@ -14,8 +14,9 @@ weechat - the extensible chat client == SYNOPSIS +// TRANSLATION MISSING [verse] -*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/doc/ja/cmdline_options.ja.adoc b/doc/ja/cmdline_options.ja.adoc index b68979862..d587e84e5 100644 --- a/doc/ja/cmdline_options.ja.adoc +++ b/doc/ja/cmdline_options.ja.adoc @@ -24,6 +24,11 @@ *-p*, *--no-plugin*:: プラグインの自動ロードを止める +// TRANSLATION MISSING +*-P*, *--plugins* __:: + Load only these plugins at startup (see /help weechat.plugin.autoload). + If this option is given, the option weechat.plugin.autoload is not used. + *-r*, *--run-command* __:: 起動後にコマンドを実行 (複数のコマンドを指定するにはセミコロンで各コマンドを区切る) diff --git a/doc/ja/weechat-headless.1.ja.adoc b/doc/ja/weechat-headless.1.ja.adoc index cd1c678d9..2918ea606 100644 --- a/doc/ja/weechat-headless.1.ja.adoc +++ b/doc/ja/weechat-headless.1.ja.adoc @@ -12,8 +12,9 @@ weechat-headless - 拡張可能なチャットクライアント (ヘッドレ == 書式 +// TRANSLATION MISSING [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/ja/weechat.1.ja.adoc b/doc/ja/weechat.1.ja.adoc index 6ee7dca7c..2dbba21ca 100644 --- a/doc/ja/weechat.1.ja.adoc +++ b/doc/ja/weechat.1.ja.adoc @@ -12,8 +12,9 @@ weechat - 拡張可能なチャットクライアント == 書式 +// TRANSLATION MISSING [verse] -*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat* [-a|--no-connect] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/doc/pl/cmdline_options.pl.adoc b/doc/pl/cmdline_options.pl.adoc index 1a4149b28..2c1169e52 100644 --- a/doc/pl/cmdline_options.pl.adoc +++ b/doc/pl/cmdline_options.pl.adoc @@ -23,6 +23,11 @@ *-p*, *--no-plugin*:: Wyłącza automatyczne ładowanie wtyczek. +// TRANSLATION MISSING +*-P*, *--plugins* __:: + Load only these plugins at startup (see /help weechat.plugin.autoload). + If this option is given, the option weechat.plugin.autoload is not used. + *-r*, *--run-command* __:: Wykonuje komendę(-y) po uruchomieniu (komendy należy oddzielać średnikiem). diff --git a/doc/pl/weechat-headless.1.pl.adoc b/doc/pl/weechat-headless.1.pl.adoc index 9e75df855..03339fcb8 100644 --- a/doc/pl/weechat-headless.1.pl.adoc +++ b/doc/pl/weechat-headless.1.pl.adoc @@ -12,8 +12,9 @@ weechat-headless - rozszerzalny klient rozmów (headless version) == SKŁADNIA +// TRANSLATION MISSING [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/pl/weechat.1.pl.adoc b/doc/pl/weechat.1.pl.adoc index 1b8f44c77..3b2a474cf 100644 --- a/doc/pl/weechat.1.pl.adoc +++ b/doc/pl/weechat.1.pl.adoc @@ -12,8 +12,9 @@ weechat - rozszerzalny klient rozmów == SKŁADNIA +// TRANSLATION MISSING [verse] -*weechat* [-a|--no-connect] [-d|--dir <ścieżka>] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [wtyczka:opcja...] +*weechat* [-a|--no-connect] [-d|--dir <ścieżka>] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [wtyczka:opcja...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/doc/ru/cmdline_options.ru.adoc b/doc/ru/cmdline_options.ru.adoc index d7b4c9bf2..2aa4ed3d8 100644 --- a/doc/ru/cmdline_options.ru.adoc +++ b/doc/ru/cmdline_options.ru.adoc @@ -26,6 +26,11 @@ *-p*, *--no-plugin*:: Отключить автозагрузку плагинов. +// TRANSLATION MISSING +*-P*, *--plugins* __:: + Load only these plugins at startup (see /help weechat.plugin.autoload). + If this option is given, the option weechat.plugin.autoload is not used. + *-r*, *--run-command* _<команда>_:: Запустить команду (или команды) после загрузки WeeChat (несколько команд можно записать через точку с запятой). diff --git a/doc/ru/weechat-headless.1.ru.adoc b/doc/ru/weechat-headless.1.ru.adoc index c9eab7572..2d12e8f93 100644 --- a/doc/ru/weechat-headless.1.ru.adoc +++ b/doc/ru/weechat-headless.1.ru.adoc @@ -14,8 +14,9 @@ weechat-headless - расширяемый чат-клиент (headless version) == ОБЗОР +// TRANSLATION MISSING [verse] -*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] +*weechat-headless* [-a|--no-connect] [--daemon] [-d|--dir ] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command ] [-s|--no-script] [--upgrade] [plugin:option...] *weechat-headless* [-c|--colors] *weechat-headless* [-h|--help] *weechat-headless* [-l|--license] diff --git a/doc/ru/weechat.1.ru.adoc b/doc/ru/weechat.1.ru.adoc index bd1c7e3cd..de4c79607 100644 --- a/doc/ru/weechat.1.ru.adoc +++ b/doc/ru/weechat.1.ru.adoc @@ -13,8 +13,9 @@ weechat - расширяемый чат-клиент == ОБЗОР +// TRANSLATION MISSING [verse] -*weechat* [-a|--no-connect] [-d|--dir <путь>] [-p|--no-plugin] [-r|--run-command <команда>] [-s|--no-script] [--upgrade] [<плагин>:<параметр>...] +*weechat* [-a|--no-connect] [-d|--dir <путь>] [-p|--no-plugin] [-P|--plugins ] [-r|--run-command <команда>] [-s|--no-script] [--upgrade] [<плагин>:<параметр>...] *weechat* [-c|--colors] *weechat* [-h|--help] *weechat* [-l|--license] diff --git a/po/cs.po b/po/cs.po index b8e3f87f9..6a59712af 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -156,6 +156,7 @@ msgstr "" msgid "Usage: %s [option...] [plugin:option...]\n" msgstr "Použití: %s [volba...] [plugin:volba...]\n" +#, fuzzy msgid "" " -a, --no-connect disable auto-connect to servers at startup\n" " -c, --colors display default colors in terminal\n" @@ -165,6 +166,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/de.po b/po/de.po index 0082c6c59..ec22b49f7 100644 --- a/po/de.po +++ b/po/de.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-06-14 23:03+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -163,6 +163,7 @@ msgstr "" msgid "Usage: %s [option...] [plugin:option...]\n" msgstr "Aufruf: %s [Option...] [Erweiterung:Option...]\n" +#, fuzzy msgid "" " -a, --no-connect disable auto-connect to servers at startup\n" " -c, --colors display default colors in terminal\n" @@ -172,6 +173,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/es.po b/po/es.po index 1a5946226..71ad5a34d 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -173,6 +173,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/fr.po b/po/fr.po index 5079f30af..b9a7d3f18 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" -"PO-Revision-Date: 2018-08-17 19:37+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" +"PO-Revision-Date: 2018-08-17 19:40+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -165,6 +165,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" @@ -183,6 +185,8 @@ msgstr "" " -h, --help afficher cette aide\n" " -l, --license afficher la licence WeeChat\n" " -p, --no-plugin ne charger aucune extension au démarrage\n" +" -P, --plugins charger uniquement ces extensions au démarrage\n" +" (voir /help weechat.plugin.autoload)\n" " -r, --run-command lancer la/les commande(s) après le démarrage\n" " (plusieurs commandes peuvent être séparées par " "des points-virgules)\n" diff --git a/po/hu.po b/po/hu.po index 0d94050a2..4946da753 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -172,6 +172,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/it.po b/po/it.po index 7a8e06b7c..fa4b50b99 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -171,6 +171,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/ja.po b/po/ja.po index 4b13658ac..4432c4769 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-07-12 09:00+0900\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/pl.po b/po/pl.po index bcbedf56b..a267fc8fa 100644 --- a/po/pl.po +++ b/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-07-09 00:51+0100\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: Polish \n" @@ -157,6 +157,7 @@ msgstr "" msgid "Usage: %s [option...] [plugin:option...]\n" msgstr "Użycie: %s [argumenty...] [wtyczka:opcje...]\n" +#, fuzzy msgid "" " -a, --no-connect disable auto-connect to servers at startup\n" " -c, --colors display default colors in terminal\n" @@ -166,6 +167,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/pt.po b/po/pt.po index c6c045b31..c65ad822e 100644 --- a/po/pt.po +++ b/po/pt.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -156,6 +156,7 @@ msgstr "" msgid "Usage: %s [option...] [plugin:option...]\n" msgstr "Utilização: %s [opção...] [plugin:opção...]\n" +#, fuzzy msgid "" " -a, --no-connect disable auto-connect to servers at startup\n" " -c, --colors display default colors in terminal\n" @@ -165,6 +166,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index ea3be0abf..79e4f63d9 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-03-31 15:37+0200\n" "Last-Translator: Eduardo Elias \n" "Language-Team: weechat-dev \n" @@ -199,6 +199,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/ru.po b/po/ru.po index eee88edc0..d73bfca19 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2018-03-31 15:37+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -180,6 +180,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/tr.po b/po/tr.po index f3f13e546..45c9cae9c 100644 --- a/po/tr.po +++ b/po/tr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2017-06-26 23:33+0200\n" "Last-Translator: Hasan Kiran \n" "Language-Team: weechat-dev \n" @@ -155,6 +155,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/po/weechat.pot b/po/weechat.pot index e068639c8..7c261a953 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-08-17 19:36+0200\n" +"POT-Creation-Date: 2018-08-17 19:39+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -153,6 +153,8 @@ msgid "" " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" +" -P, --plugins load only these plugins at startup\n" +" (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by semicolons)\n" " -s, --no-script don't load any script at startup\n" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 7bacb73d5..93ec84a56 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -4534,10 +4534,10 @@ COMMAND_CALLBACK(plugin) { plugin_argv = string_split (argv_eol[2], " ", 0, 0, &plugin_argc); - plugin_auto_load (plugin_argc, plugin_argv, 1, 1, 1); + plugin_auto_load (NULL, 1, 1, 1, plugin_argc, plugin_argv); } else - plugin_auto_load (0, NULL, 1, 1, 1); + plugin_auto_load (NULL, 1, 1, 1, 0, NULL); return WEECHAT_RC_OK; } @@ -4571,7 +4571,7 @@ COMMAND_CALLBACK(plugin) if (strcmp (argv[2], "*") == 0) { plugin_unload_all (); - plugin_auto_load (plugin_argc, plugin_argv, 1, 1, 1); + plugin_auto_load (NULL, 1, 1, 1, plugin_argc, plugin_argv); } else { @@ -4586,7 +4586,7 @@ COMMAND_CALLBACK(plugin) else { plugin_unload_all (); - plugin_auto_load (0, NULL, 1, 1, 1); + plugin_auto_load (NULL, 1, 1, 1, 0, NULL); } return WEECHAT_RC_OK; } diff --git a/src/core/weechat.c b/src/core/weechat.c index f74598ad5..76a9b1849 100644 --- a/src/core/weechat.c +++ b/src/core/weechat.c @@ -95,7 +95,7 @@ char *weechat_home = NULL; /* home dir. (default: ~/.weechat) */ int weechat_locale_ok = 0; /* is locale OK? */ char *weechat_local_charset = NULL; /* example: ISO-8859-1, UTF-8 */ int weechat_server_cmd_line = 0; /* at least 1 server on cmd line */ -int weechat_auto_load_plugins = 1; /* auto load plugins */ +char *weechat_force_plugin_autoload = NULL; /* force load of plugins */ int weechat_plugin_no_dlclose = 0; /* remove calls to dlclose for libs */ /* (useful with valgrind) */ int weechat_no_gnutls = 0; /* remove init/deinit of gnutls */ @@ -152,6 +152,8 @@ weechat_display_usage () " -h, --help display this help\n" " -l, --license display WeeChat license\n" " -p, --no-plugin don't load any plugin at startup\n" + " -P, --plugins load only these plugins at startup\n" + " (see /help weechat.plugin.autoload)\n" " -r, --run-command run command(s) after startup\n" " (many commands can be separated by " "semicolons)\n" @@ -193,7 +195,7 @@ weechat_parse_args (int argc, char *argv[]) weechat_upgrading = 0; weechat_home = NULL; weechat_server_cmd_line = 0; - weechat_auto_load_plugins = 1; + weechat_force_plugin_autoload = NULL; weechat_plugin_no_dlclose = 0; for (i = 1; i < argc; i++) @@ -269,7 +271,26 @@ weechat_parse_args (int argc, char *argv[]) else if ((strcmp (argv[i], "-p") == 0) || (strcmp (argv[i], "--no-plugin") == 0)) { - weechat_auto_load_plugins = 0; + if (weechat_force_plugin_autoload) + free (weechat_force_plugin_autoload); + weechat_force_plugin_autoload = strdup ("!*"); + } + else if ((strcmp (argv[i], "-P") == 0) + || (strcmp (argv[i], "--plugins") == 0)) + { + if (i + 1 < argc) + { + if (weechat_force_plugin_autoload) + free (weechat_force_plugin_autoload); + weechat_force_plugin_autoload = strdup (argv[++i]); + } + else + { + string_fprintf (stderr, + _("Error: missing argument for \"%s\" option\n"), + argv[i]); + weechat_shutdown (EXIT_FAILURE, 0); + } } else if ((strcmp (argv[i], "-r") == 0) || (strcmp (argv[i], "--run-command") == 0)) @@ -616,6 +637,8 @@ weechat_shutdown (int return_code, int crash) free (weechat_home); if (weechat_local_charset) free (weechat_local_charset); + if (weechat_force_plugin_autoload) + free (weechat_force_plugin_autoload); if (crash) abort (); @@ -697,7 +720,7 @@ weechat_init (int argc, char *argv[], void (*gui_init_cb)()) weechat_term_check (); /* warning about wrong $TERM */ weechat_locale_check (); /* warning about wrong locale */ command_startup (0); /* command executed before plugins */ - plugin_init (weechat_auto_load_plugins, /* init plugin interface(s) */ + plugin_init (weechat_force_plugin_autoload, /* init plugin interface(s) */ argc, argv); command_startup (1); /* commands executed after plugins */ if (!weechat_upgrading) diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c index e99c5a189..eb96db103 100644 --- a/src/plugins/plugin.c +++ b/src/plugins/plugin.c @@ -998,12 +998,14 @@ plugin_arraylist_cmp_cb (void *data, */ void -plugin_auto_load (int argc, char **argv, +plugin_auto_load (char *force_plugin_autoload, int load_from_plugin_path, int load_from_extra_lib_dir, - int load_from_lib_dir) + int load_from_lib_dir, + int argc, char **argv) { char *dir_name, *plugin_path, *plugin_path2, *extra_libdir; + const char *ptr_plugin_autoload; struct t_weechat_plugin *ptr_plugin; struct t_plugin_args plugin_args; struct t_arraylist *arraylist; @@ -1015,10 +1017,12 @@ plugin_auto_load (int argc, char **argv, plugin_autoload_array = NULL; plugin_autoload_count = 0; - if (CONFIG_STRING(config_plugin_autoload) - && CONFIG_STRING(config_plugin_autoload)[0]) + ptr_plugin_autoload = (force_plugin_autoload) ? + force_plugin_autoload : CONFIG_STRING(config_plugin_autoload); + + if (ptr_plugin_autoload && ptr_plugin_autoload[0]) { - plugin_autoload_array = string_split (CONFIG_STRING(config_plugin_autoload), + plugin_autoload_array = string_split (ptr_plugin_autoload, ",", 0, 0, &plugin_autoload_count); } @@ -1351,20 +1355,17 @@ plugin_display_short_list () */ void -plugin_init (int auto_load, int argc, char *argv[]) +plugin_init (char *force_plugin_autoload, int argc, char *argv[]) { /* read plugins options on disk */ plugin_config_init (); plugin_config_read (); - /* auto-load plugins if asked */ - if (auto_load) - { - plugin_quiet = 1; - plugin_auto_load (argc, argv, 1, 1, 1); - plugin_display_short_list (); - plugin_quiet = 0; - } + /* auto-load plugins */ + plugin_quiet = 1; + plugin_auto_load (force_plugin_autoload, 1, 1, 1, argc, argv); + plugin_display_short_list (); + plugin_quiet = 0; } /* diff --git a/src/plugins/plugin.h b/src/plugins/plugin.h index fa62cb4bb..103b4b547 100644 --- a/src/plugins/plugin.h +++ b/src/plugins/plugin.h @@ -39,15 +39,17 @@ extern const char *plugin_get_name (struct t_weechat_plugin *plugin); extern struct t_weechat_plugin *plugin_load (const char *filename, int init_plugin, int argc, char **argv); -extern void plugin_auto_load (int argc, char **argv, +extern void plugin_auto_load (char *force_plugin_autoload, int load_from_plugin_path, int load_from_extra_lib_dir, - int load_from_lib_dir); + int load_from_lib_dir, + int argc, + char **argv); extern void plugin_unload (struct t_weechat_plugin *plugin); extern void plugin_unload_name (const char *name); extern void plugin_unload_all (); extern void plugin_reload_name (const char *name, int argc, char **argv); -extern void plugin_init (int auto_load, int argc, char *argv[]); +extern void plugin_init (char *force_plugin_autoload, int argc, char *argv[]); extern void plugin_end (); extern struct t_hdata *plugin_hdata_plugin_cb (const void *pointer, void *data, diff --git a/tests/tests.cpp b/tests/tests.cpp index 4f9d8ea87..3fc351fa6 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -221,7 +221,7 @@ main (int argc, char *argv[]) "Auto-loading plugins from path in " "environment variable WEECHAT_EXTRA_LIBDIR (\"%s\")", getenv ("WEECHAT_EXTRA_LIBDIR")); - plugin_auto_load (0, NULL, 0, 1, 0); + plugin_auto_load (NULL, 0, 1, 0, 0, NULL); } /* display WeeChat version and directories */ -- cgit v1.2.3