summaryrefslogtreecommitdiff
path: root/doc/fr
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2014-10-22 21:19:54 +0200
committerSébastien Helleu <flashcode@flashtux.org>2014-10-22 21:19:54 +0200
commit633a32ccd367bdb7e2f97066a4d35f01ecb8e8fb (patch)
tree91aaf5a1df48078fb98b747c8bf3deccaecbdaed /doc/fr
parent972bd26e5e2e2e2303ccff457ae0493e2f45a284 (diff)
downloadweechat-633a32ccd367bdb7e2f97066a4d35f01ecb8e8fb.zip
api: add regex replace feature in function string_eval_expression
Diffstat (limited to 'doc/fr')
-rw-r--r--doc/fr/weechat_plugin_api.fr.asciidoc154
1 files changed, 136 insertions, 18 deletions
diff --git a/doc/fr/weechat_plugin_api.fr.asciidoc b/doc/fr/weechat_plugin_api.fr.asciidoc
index 17c8c7799..4102bb62f 100644
--- a/doc/fr/weechat_plugin_api.fr.asciidoc
+++ b/doc/fr/weechat_plugin_api.fr.asciidoc
@@ -1858,11 +1858,11 @@ str3 = weechat.string_input_for_buffer("//test") # "/test"
==== weechat_string_eval_expression
-_WeeChat ≥ 0.4.0, mis à jour dans la 0.4.2._
+_WeeChat ≥ 0.4.0, mis à jour dans la 0.4.2 et 1.1._
Évaluer l'expression et retourner le résultat sous forme de chaîne.
-Les variables spéciales avec le format `${variable}` sont étendues (voir la
-commande `/eval` dans le 'Guide utilisateur WeeChat').
+Les variables spéciales avec le format `${variable}` sont étendues (voir le
+tableau ci-dessous).
[NOTE]
Depuis la version 1.0, les variables imbriquées sont supportées, par exemple :
@@ -1880,11 +1880,17 @@ char *weechat_string_eval_expression (const char *expr,
Paramètres :
-* 'expr' : l'expression à évaluer
+* 'expr' : l'expression à évaluer (voir le tableau ci-dessous)
* 'pointers' : table de hachage avec les pointeurs (les clés doivent être des
chaînes, les valeurs doivent être des pointeurs); les pointeurs "window" et
"buffer" sont automatiquement ajoutés s'ils ne sont pas dans la table de
- hachage (avec le pointer vers fenêtre/tampon courants) (peut être NULL)
+ hachage (avec le pointer vers fenêtre/tampon courants) (peut être NULL) :
+** 'regex' : pointeur vers une expression régulière (structure 'regex_t')
+ compilée avec la fonction WeeChat
+ <<_weechat_string_regcomp,weechat_string_regcomp>> ou regcomp (voir
+ `man regcomp`) ; cette option est similaire à 'regex' dans la table de
+ hachage 'options' (ci-dessous), mais est utilisée pour de meilleures
+ performances
* 'extra_vars' : variables additionnelles qui seront étendues (peut être NULL)
* 'options' : table de hachage avec des options (les clés et valeurs doivent
être des chaînes) (peut être NULL) :
@@ -1894,6 +1900,12 @@ Paramètres :
et parenthèses sont utilisés, le résultat est un booléen ("0" ou "1")
** 'prefix' : préfixe avant les variables à remplacer (par défaut : "${")
** 'suffix' : suffixe après les variables à remplacer (par défaut : "}")
+** 'regex' : une expression regulière pour remplacer du texte dans 'expr' (qui
+ n'est alors pas évalué)
+** 'regex_replace' : le texte de remplacement à utiliser avec 'regex', pour
+ remplacer du texte dans 'expr' ('regex_replace' est évalué sur chaque
+ correspondance de 'regex' sur 'expr', jusqu'à ce que plus aucune
+ correspondance ne soit trouvée)
Valeur de retour :
@@ -1901,20 +1913,108 @@ Valeur de retour :
utilisation), ou NULL si problème (expression invalide ou pas assez de
mémoire)
+Liste des variables étendues dans l'expression (par ordre de priorité, de la
+première étendue à la dernière) :
+
+[width="100%",cols="2,8,3,3",options="header"]
+|===
+| Format | Description | Exemples | Résultats
+
+| `${nom}` | Variable `nom` de la table de hachage 'extra_vars' |
+ `${nom}` | `valeur`
+
+| `${esc:xxx}` +
+ `${\xxx}` | Chaîne avec caractères échappés |
+ `${esc:préfixe\tmessage}` +
+ `${\ua9}` |
+ `préfixe<TAB>message` +
+ `©`
+
+| `${hide:x,valeur}` |
+ Chaîne avec les caractères masqués (tous les caractères dans `valeur`
+ remplacés par `x` |
+ `${hide:*,mot_de_passe}` |
+ `************`
+
+| `${re:N}` |
+ Groupe regex capturé : 0 = toute la chaîne correspondante, 1 à 99 = groupe
+ capturé, `+` = dernier groupe capturé |
+ `${re:1}` |
+ `test`
+
+| `${color:nom}` |
+ Code couleur WeeChat (le nom de couleur a des attributs facultatifs) |
+ `${color:red}texte rouge` +
+ `${color:*214}texte orange gras` |
+ `texte rouge` (en rouge) +
+ `texte orange gras` (en orange gras)
+
+| `${info:name}` +
+ `${indo:name,arguments}` |
+ Info de WeeChat ou d'une extension, voir la fonction
+ <<_weechat_info_get,weechat_info_get>> |
+ `${info:version}` +
+ `${info:irc_nick_color_name,foo}` |
+ `1.0` +
+ `lightblue`
+
+| `${sec.data.nom}` |
+ Valeur de la donnée sécurisée `nom` |
+ `${sec.data.freenode_pass}` |
+ `mon_mot_de_passe`
+
+| `${file.section.option}` |
+ Valeur de l'option |
+ `${weechat.look.buffer_time_format}` |
+ `%H:%M:%S`
+
+| `${nom}` |
+ Valeur de la variable locale `nom` dans le tampon |
+ `${nick}` |
+ `FlashCode`
+
+| `${hdata.var1.var2...}` +
+ `${hdata[list].var1.var2...}` |
+ Valeur d'un hdata (les pointeurs `window` et `buffer` sont définis par défaut
+ avec la fenêtre et tampon courants) |
+ `${buffer[gui_buffers].full_name}` +
+ `${window.buffer.number}` |
+ `core.weechat` +
+ `1`
+|===
+
Exemples en C :
[source,C]
----
-struct t_hashtable *options = weechat_hashtable_new (8,
- WEECHAT_HASHTABLE_STRING,
- WEECHAT_HASHTABLE_STRING,
- NULL,
- NULL);
-if (options)
- weechat_hashtable_set (options, "type", "condition");
-char *str1 = weechat_string_eval_expression ("${buffer.full_name}", NULL, NULL, NULL); /* "core.weechat" */
-char *str2 = weechat_string_eval_expression ("${window.win_width} > 100", NULL, NULL, options); /* "1" */
-char *str3 = weechat_string_eval_expression ("abc =~ def", NULL, NULL, options); /* "0" */
+/* conditions */
+struct t_hashtable *options1 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+weechat_hashtable_set (options1, "type", "condition");
+char *str1 = weechat_string_eval_expression ("${window.win_width} > 100", NULL, NULL, options1); /* "1" */
+char *str2 = weechat_string_eval_expression ("abc =~ def", NULL, NULL, options1); /* "0" */
+
+/* expression simple */
+char *str3 = weechat_string_eval_expression ("${buffer.full_name}", NULL, NULL, NULL); /* "core.weechat" */
+
+/* remplacement avec regex */
+struct t_hashtable *options2 = weechat_hashtable_new (8,
+ WEECHAT_HASHTABLE_STRING,
+ WEECHAT_HASHTABLE_STRING,
+ NULL,
+ NULL);
+/* ajout de crochets autour des URLs */
+weechat_hashtable_set (options2, "regex", "\\w+://\\S+");
+weechat_hashtable_set (options2, "regex_replace", "[ ${re:0} ]");
+char *str4 = weechat_string_eval_expression ("test: http://weechat.org", NULL, NULL, NULL); /* "test: [ http://weechat.org ]" */
+
+/* masquage des mots de passe */
+weechat_hashtable_set (options2, "regex", "(password=)(\\S+)");
+weechat_hashtable_set (options2, "regex_replace", "${re:1}${hide:*,${re:2}}");
+char *str5 = weechat_string_eval_expression ("password=abc password=def", NULL, NULL, NULL); /* "password=*** password=***" */
----
Script (Python) :
@@ -1925,9 +2025,27 @@ Script (Python) :
str = weechat.string_eval_expression(expr, pointers, extra_vars, options)
# exemples
-str1 = weechat.string_eval_expression("${buffer.full_name}", {}, {}, {}) # "core.weechat"
-str2 = weechat.string_eval_expression("${window.win_width} > 100", {}, {}, {"type": "condition"}) # "1"
-str3 = weechat.string_eval_expression("abc =~ def", {}, {}, {"type": "condition"}) # "0"
+
+# conditions
+str1 = weechat.string_eval_expression("${window.win_width} > 100", {}, {}, {"type": "condition"}) # "1"
+str2 = weechat.string_eval_expression("abc =~ def", {}, {}, {"type": "condition"}) # "0"
+
+# expression simple
+str3 = weechat.string_eval_expression("${buffer.full_name}", {}, {}, {}) # "core.weechat"
+
+# remplacement avec regex : ajout de crochets autour des URLs
+options = {
+ "regex": "\\w+://\\S+",
+ "regex_replace": "[ ${re:0} ]",
+}
+str4 = weechat.string_eval_expression("test: http://weechat.org", {}, {}, options) # "test: [ http://weechat.org ]"
+
+# replace with regex : masquage des mots de passe
+options = {
+ "regex": "(password=)(\\S+)",
+ "regex_replace": "${re:1}${hide:*,${re:2}}",
+}
+str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, options) # "password=*** password=***"
----
[[utf-8]]