diff --git a/po/cs.po b/po/cs.po index 4fa37a0a9..2165b3e18 100644 --- a/po/cs.po +++ b/po/cs.po @@ -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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/de.po b/po/de.po index 5cc1522e3..574d57a3a 100644 --- a/po/de.po +++ b/po/de.po @@ -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 \n" "Language-Team: German \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) " diff --git a/po/es.po b/po/es.po index 72beacd0c..0dc9ff596 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: 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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/fr.po b/po/fr.po index 6aa5317fb..405160e1e 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: 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 \n" "Language-Team: weechat-dev \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 " diff --git a/po/hu.po b/po/hu.po index ab882e54e..343349ccb 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: 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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/it.po b/po/it.po index 1c46e6fca..9e2a5b2d6 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: 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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/ja.po b/po/ja.po index d75195658..0ce672bd8 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: 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 \n" "Language-Team: Japanese \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 を参" diff --git a/po/pl.po b/po/pl.po index e7395ae81..a94718a53 100644 --- a/po/pl.po +++ b/po/pl.po @@ -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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/pt_BR.po b/po/pt_BR.po index 2ec2f71cd..7a8418fa5 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: 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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/ru.po b/po/ru.po index 12c8cd146..7ccbcd635 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: 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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/tr.po b/po/tr.po index b5fadd503..633184c63 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: 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 \n" "Language-Team: weechat-dev \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 "" diff --git a/po/weechat.pot b/po/weechat.pot index 7954d9103..e3eaea0c7 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -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 \n" "Language-Team: weechat-dev \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 "" diff --git a/src/plugins/trigger/trigger-config.c b/src/plugins/trigger/trigger-config.c index 2f8b95643..57d84c871 100644 --- a/src/plugins/trigger/trigger-config.c +++ b/src/plugins/trigger/trigger-config.c @@ -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; diff --git a/src/plugins/trigger/trigger.c b/src/plugins/trigger/trigger.c index a348db58a..ae311f068 100644 --- a/src/plugins/trigger/trigger.c +++ b/src/plugins/trigger/trigger.c @@ -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);