1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 13:26:38 +02:00

trigger: interpret escaped chars in regex

This commit is contained in:
Sébastien Helleu
2014-04-12 09:31:24 +02:00
parent dea2960d13
commit e901d14a1f
14 changed files with 83 additions and 61 deletions
+5 -4
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -10147,9 +10147,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+6 -4
View File
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 21:06+0100\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <weechatter@arcor.de>\n"
@@ -11516,15 +11516,17 @@ msgstr ""
"(Hinweis: Inhalt ist evaluiert wenn der Trigger ausgeführt wird, siehe /help "
"eval)"
#, fuzzy
msgid ""
"replace text with a POSIX extended regular expression (it is done only if "
"conditions are OK, and before running the command) (note: content is "
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
"ersetzt Text mittels erweitertem regulären POSIX Ausdruck (dies passiert nur "
"falls die Bedingungen erfüllt sind und bevor der Befehl ausgeführt wird) "
+5 -4
View File
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -10417,9 +10417,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+12 -10
View File
@@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"PO-Revision-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-12 09:29+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@@ -11243,9 +11243,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
"remplacer du texte avec une expression régulière POSIX étendue (cela est "
"fait seulement si les conditions sont OK, et avant d'exécuter la commande) "
@@ -11253,11 +11254,12 @@ msgstr ""
"le format est: \"/regex/remplacement/var\" (var est une variable de la table "
"de hachage à remplacer, elle est facultative), plusieurs expressions "
"régulières peuvent être séparées par un espace, par exemple: \"/regex1/"
"replace1/var1 /regex2/replace2/var2\"; le séparateur \"/\" peut être "
"remplacé par n'importe quel caractère (un ou plusieurs identiques); les "
"groupes de correspondance peuvent être utilisés dans le remplacement: $0 à "
"$99, $+ pour le dernier groupe et $.cN pour remplacer tous les caractères du "
"groupe N par c"
"replace1/var1 /regex2/replace2/var2\"; les caractères échappés sont "
"interprétés dans l'expression régulière (par exemple \"\\n\"); le séparateur "
"\"/\" peut être remplacé par n'importe quel caractère (un ou plusieurs "
"identiques); les groupes de correspondance peuvent être utilisés dans le "
"remplacement: $0 à $99, $+ pour le dernier groupe et $.cN pour remplacer "
"tous les caractères du groupe N par c"
msgid ""
"command(s) to run if conditions are OK, after regex replacements (many "
+5 -4
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -9547,9 +9547,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+5 -4
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -10589,9 +10589,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+6 -4
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/translation_ja>\n"
@@ -10826,15 +10826,17 @@ msgstr ""
"コマンドを実行する条件 (フックコールバック内で確認されます) (注意: 内容はトリ"
"ガの実行時に評価されます、/help eval を参照)"
#, fuzzy
msgid ""
"replace text with a POSIX extended regular expression (it is done only if "
"conditions are OK, and before running the command) (note: content is "
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
"POSIX 拡張正規表現で置換するテキスト (条件が満足され、コマンドが実行される前"
"に置換されます) (注意: 内容はトリガの実行時に評価されます、/help eval を参"
+5 -4
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -10857,9 +10857,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+5 -4
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -9786,9 +9786,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+5 -4
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-04-05 16:12+0200\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -9571,9 +9571,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+5 -4
View File
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2014-03-24 14:23+0100\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -8632,9 +8632,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+5 -4
View File
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-04-12 08:56+0200\n"
"POT-Creation-Date: 2014-04-12 09:29+0200\n"
"PO-Revision-Date: 2013-02-14 18:20+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -8563,9 +8563,10 @@ msgid ""
"evaluated when trigger is run, see /help eval); format is: \"/regex/replace/"
"var\" (var is the hashtable variable to replace, it is optional), many regex "
"can be separated by a space, for example: \"/regex1/replace1/var1 /regex2/"
"replace2/var2\"; the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in replace: $0 to $99, $+ "
"for last match and $.cN to replace all chars of group N by char c"
"replace2/var2\"; escaped chars are interpreted in the regex (for example "
"\"\\n\"); the separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: $0 to $99, $+ for "
"last match and $.cN to replace all chars of group N by char c"
msgstr ""
msgid ""
+6 -5
View File
@@ -310,11 +310,12 @@ trigger_config_create_trigger_option (const char *trigger_name, int index_option
"see /help eval); format is: \"/regex/replace/var\" (var "
"is the hashtable variable to replace, it is optional), "
"many regex can be separated by a space, for example: "
"\"/regex1/replace1/var1 /regex2/replace2/var2\"; the "
"separator \"/\" can be replaced by any char (one or more "
"identical chars); matching groups can be used in replace: "
"$0 to $99, $+ for last match and $.cN to replace all chars "
"of group N by char c"),
"\"/regex1/replace1/var1 /regex2/replace2/var2\"; escaped "
"chars are interpreted in the regex (for example \"\\n\"); "
"the separator \"/\" can be replaced by any char (one or "
"more identical chars); matching groups can be used in "
"replace: $0 to $99, $+ for last match and $.cN to replace "
"all chars of group N by char c"),
NULL, 0, 0, value, NULL, 0, NULL, NULL,
&trigger_config_change_trigger_regex, NULL, NULL, NULL);
break;
+8 -2
View File
@@ -494,12 +494,13 @@ trigger_regex_split (const char *str_regex,
{
const char *ptr_regex, *pos, *pos_replace, *pos_replace_end;
const char *pos_next_regex;
char *delimiter;
char *delimiter, *str_regex_escaped;
int rc, index, length_delimiter;
struct t_trigger_regex *new_regex;
rc = 0;
delimiter = NULL;
str_regex_escaped = NULL;
if (!regex_count || !regex)
goto end;
@@ -571,13 +572,16 @@ trigger_regex_split (const char *str_regex,
pos_replace - ptr_regex);
if (!(*regex)[index].str_regex)
goto memory_error;
str_regex_escaped = weechat_string_convert_escaped_chars ((*regex)[index].str_regex);
if (!str_regex_escaped)
goto memory_error;
/* set regex */
(*regex)[index].regex = malloc (sizeof (*(*regex)[index].regex));
if (!(*regex)[index].regex)
goto memory_error;
if (weechat_string_regcomp ((*regex)[index].regex,
(*regex)[index].str_regex,
str_regex_escaped,
REG_EXTENDED | REG_ICASE) != 0)
{
free ((*regex)[index].regex);
@@ -643,6 +647,8 @@ memory_error:
end:
if (delimiter)
free (delimiter);
if (str_regex_escaped)
free (str_regex_escaped);
if (rc < 0)
trigger_regex_free (regex_count, regex);