From ea711217236e5fee14b85840409c4e84fc087377 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Fri, 28 Feb 2014 14:31:40 +0100 Subject: [PATCH] api: add support of escaped strings in function string_eval_expression and command /eval --- ChangeLog | 2 ++ po/cs.po | 18 +++++++++++------- po/de.po | 19 ++++++++++++------- po/es.po | 18 +++++++++++------- po/fr.po | 37 +++++++++++++++++++++++-------------- po/hu.po | 18 +++++++++++------- po/it.po | 18 +++++++++++------- po/ja.po | 19 ++++++++++++------- po/pl.po | 19 ++++++++++++------- po/pt_BR.po | 18 +++++++++++------- po/ru.po | 18 +++++++++++------- po/tr.po | 18 +++++++++++------- po/weechat.pot | 18 +++++++++++------- src/core/wee-command.c | 16 ++++++++++------ src/core/wee-eval.c | 16 +++++++++++----- 15 files changed, 170 insertions(+), 102 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7323b07d5..984563a41 100644 --- a/ChangeLog +++ b/ChangeLog @@ -34,6 +34,8 @@ http://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] * core: add signals "key_combo_{default|search|cursor}" * core: display a warning in case of inconsistency between the options weechat.look.save_{config|layout}_on_exit +* api: add support of escaped strings with format `${esc:xxx}` or `${\xxx}` in + function string_eval_expression and command /eval * api: add functions "hashtable_dup", "string_replace_regex", "string_split_shell", "string_convert_escaped_chars" * api: add integer return code for functions hook_{signal|hsignal}_send diff --git a/po/cs.po b/po/cs.po index 8bcd3fbd5..9a0ef8c45 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:24+0100\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -1364,11 +1364,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1381,13 +1382,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/de.po b/po/de.po index 2c9e34671..4c9f3ff39 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:24+0100\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -1387,6 +1387,7 @@ msgstr "wertet eine Expression aus und zeigt das Resultat im Buffer an" msgid "[-n] || [-n] -c " msgstr "[-n] || [-n] -c " +#, fuzzy msgid "" " -n: display result without sending it to buffer (debug mode)\n" " -c: evaluate as condition: use operators and parentheses, return a " @@ -1418,11 +1419,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1435,13 +1437,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/es.po b/po/es.po index 4a6f2370f..d204f9fbf 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:25+0100\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -1403,11 +1403,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1420,13 +1421,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/fr.po b/po/fr.po index 29e4f652a..cc22b52ff 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-02-23 20:28+0100\n" -"PO-Revision-Date: 2014-02-23 20:29+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" +"PO-Revision-Date: 2014-02-28 14:23+0100\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -1397,11 +1397,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1414,13 +1415,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" @@ -1461,12 +1465,14 @@ msgstr "" "\n" "Des variables sont remplacées dans l'expression, en utilisant le format " "${variable}, la variable pouvant être, par ordre de priorité :\n" -" 1. une couleur (format: \"color:xxx\")\n" -" 2. une info (format: \"info:nom,paramètres\", les paramètres sont " +" 1. une chaîne avec les caractères échappés (format: \"esc:xxx\" ou \"\\xxx" +"\")\n" +" 2. une couleur (format: \"color:xxx\")\n" +" 3. une info (format: \"info:nom,paramètres\", les paramètres sont " "optionnels)\n" -" 3. une option (format: \"fichier.section.option\")\n" -" 4. une variable locale du tampon\n" -" 5. un hdata/variable (la valeur est automatiquement convertie en chaîne), " +" 4. une option (format: \"fichier.section.option\")\n" +" 5. une variable locale du tampon\n" +" 6. un hdata/variable (la valeur est automatiquement convertie en chaîne), " "par défaut \"window\" et \"buffer\" pointent vers la fenêtre et le tampon " "courants.\n" "Le format du hdata peut être le suivant :\n" @@ -1482,13 +1488,16 @@ msgstr "" "Pour le nom du hdata et des variables, voir la \"Référence API extension\", " "fonction \"weechat_hdata_get\".\n" "\n" -"Exemples:\n" +"Exemples (chaînes simples):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Exemples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/hu.po b/po/hu.po index e4d8dc65b..79ce5a34a 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:25+0100\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -1297,11 +1297,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1314,13 +1315,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/it.po b/po/it.po index 3d7b70f65..c76c01f71 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:25+0100\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -1380,11 +1380,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1397,13 +1398,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/ja.po b/po/ja.po index f46a2acc5..b7f5491a0 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:25+0100\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" @@ -1333,6 +1333,7 @@ msgstr "式を評価して結果をバッファに送信" msgid "[-n] || [-n] -c " msgstr "[-n] || [-n] -c " +#, fuzzy msgid "" " -n: display result without sending it to buffer (debug mode)\n" " -c: evaluate as condition: use operators and parentheses, return a " @@ -1364,11 +1365,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1381,13 +1383,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/pl.po b/po/pl.po index c38cf698c..9d915bbf4 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:25+0100\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: weechat-dev \n" @@ -1366,6 +1366,7 @@ msgstr "przetwarza wyrażenie i wysyła wynik do buforu" msgid "[-n] || [-n] -c " msgstr "[-n] || [-n] -c " +#, fuzzy msgid "" " -n: display result without sending it to buffer (debug mode)\n" " -c: evaluate as condition: use operators and parentheses, return a " @@ -1397,11 +1398,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1414,13 +1416,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 7cef52516..418c227ae 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:25+0100\n" "Last-Translator: Sergio Durigan Junior \n" "Language-Team: weechat-dev \n" @@ -1418,11 +1418,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1435,13 +1436,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/ru.po b/po/ru.po index d8a74c378..4a1c7c933 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-20 12:25+0100\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -1319,11 +1319,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1336,13 +1337,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/tr.po b/po/tr.po index b620481dd..d2acdd4cc 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2014-02-16 11:21+0100\n" "Last-Translator: Hasan Kiran \n" "Language-Team: weechat-dev \n" @@ -1153,11 +1153,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1170,13 +1171,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/po/weechat.pot b/po/weechat.pot index 03f79ec9b..ccdfafac8 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-02-23 20:28+0100\n" +"POT-Creation-Date: 2014-02-28 14:23+0100\n" "PO-Revision-Date: 2013-02-14 18:20+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: weechat-dev \n" @@ -1159,11 +1159,12 @@ msgid "" "\n" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority :\n" -" 1. a color (format: \"color:xxx\")\n" -" 2. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 3. an option (format: \"file.section.option\")\n" -" 4. a local variable in buffer\n" -" 5. a hdata name/variable (the value is automatically converted to string), " +" 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 2. a color (format: \"color:xxx\")\n" +" 3. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 4. an option (format: \"file.section.option\")\n" +" 5. a local variable in buffer\n" +" 6. a hdata name/variable (the value is automatically converted to string), " "by default \"window\" and \"buffer\" point to current window/buffer.\n" "Format for hdata can be one of following:\n" " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " @@ -1176,13 +1177,16 @@ msgid "" "For name of hdata and variables, please look at \"Plugin API reference\", " "function \"weechat_hdata_get\".\n" "\n" -"Examples:\n" +"Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +"\n" +"Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 5e79e1138..98fc0b102 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -6735,12 +6735,13 @@ command_init () "\n" "Some variables are replaced in expression, using the format " "${variable}, variable can be, by order of priority :\n" - " 1. a color (format: \"color:xxx\")\n" - " 2. an info (format: \"info:name,arguments\", arguments are " + " 1. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" + " 2. a color (format: \"color:xxx\")\n" + " 3. an info (format: \"info:name,arguments\", arguments are " "optional)\n" - " 3. an option (format: \"file.section.option\")\n" - " 4. a local variable in buffer\n" - " 5. a hdata name/variable (the value is automatically converted " + " 4. an option (format: \"file.section.option\")\n" + " 5. a local variable in buffer\n" + " 6. a hdata name/variable (the value is automatically converted " "to string), by default \"window\" and \"buffer\" point to current " "window/buffer.\n" "Format for hdata can be one of following:\n" @@ -6755,13 +6756,16 @@ command_init () "For name of hdata and variables, please look at \"Plugin API " "reference\", function \"weechat_hdata_get\".\n" "\n" - "Examples:\n" + "Examples (simple strings):\n" " /eval -n ${info:version} ==> 0.4.3\n" " /eval -n ${weechat.look.scroll_amount} ==> 3\n" " /eval -n ${window} ==> 0x2549aa0\n" " /eval -n ${window.buffer} ==> 0x2549320\n" " /eval -n ${window.buffer.full_name} ==> core.weechat\n" " /eval -n ${window.buffer.number} ==> 1\n" + " /eval -n ${\\t} ==> \n" + "\n" + "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" " /eval -n -c ${window.win_width} > 100 ==> 1\n" " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" diff --git a/src/core/wee-eval.c b/src/core/wee-eval.c index 700550cea..88596cec8 100644 --- a/src/core/wee-eval.c +++ b/src/core/wee-eval.c @@ -252,14 +252,20 @@ eval_replace_vars_cb (void *data, const char *text) return strdup (ptr_value); } - /* 2. look for a color */ + /* 2. convert escaped chars */ + if (strncmp (text, "esc:", 4) == 0) + return string_convert_escaped_chars (text + 4); + if ((text[0] == '\\') && text[1] && (text[1] != '\\')) + return string_convert_escaped_chars (text); + + /* 3. look for a color */ if (strncmp (text, "color:", 6) == 0) { ptr_value = gui_color_get_custom (text + 6); return strdup ((ptr_value) ? ptr_value : ""); } - /* 3. look for an info */ + /* 4. look for an info */ if (strncmp (text, "info:", 5) == 0) { ptr_value = NULL; @@ -279,7 +285,7 @@ eval_replace_vars_cb (void *data, const char *text) return strdup ((ptr_value) ? ptr_value : ""); } - /* 4. look for name of option: if found, return this value */ + /* 5. look for name of option: if found, return this value */ if (strncmp (text, "sec.data.", 9) == 0) { ptr_value = hashtable_get (secure_hashtable_data, text + 9); @@ -312,7 +318,7 @@ eval_replace_vars_cb (void *data, const char *text) } } - /* 5. look for local variable in buffer */ + /* 6. look for local variable in buffer */ ptr_buffer = hashtable_get (pointers, "buffer"); if (ptr_buffer) { @@ -321,7 +327,7 @@ eval_replace_vars_cb (void *data, const char *text) return strdup (ptr_value); } - /* 6. look for hdata */ + /* 7. look for hdata */ value = NULL; hdata_name = NULL; list_name = NULL;