Oui, je sais, je viens de vérifier et, effectivement, elle est bien
décrite page 101 (para. 15.5.4.9) du standard ECMA 262-3.
Mais quand même, comme je pense ne pas être le seul à m'étonner (et à ne
pas avoir comme livre de chevet préféré l'ouvrage précité), je me
permets d'en faire profiter tout le monde.
La méthode compare la chaîne courante avec celle passée en argument,
tenant compte des paramètres linguistiques de la machine locale.
Ainsi, en français, le "é" sera bien considéré comme étant placé avant
le "f", par exemple.
L'exemple ci-dessous utilise la méthode dans une fonction permettant
finalement le tri localisé d'un tableau, à comparer avec les résultats
précédents.
<script>
var t1 = ["fee", "echo"];
t1.sort();
alert(t1); // "echo,fee"
var t2 = ["fée", "écho"];
t2.sort();
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
</script>
Oui, je sais, je viens de vérifier et, effectivement, elle est bien
décrite page 101 (para. 15.5.4.9) du standard ECMA 262-3.
Mais quand même, comme je pense ne pas être le seul à m'étonner (et à ne
pas avoir comme livre de chevet préféré l'ouvrage précité), je me
permets d'en faire profiter tout le monde.
La méthode compare la chaîne courante avec celle passée en argument,
tenant compte des paramètres linguistiques de la machine locale.
Ainsi, en français, le "é" sera bien considéré comme étant placé avant
le "f", par exemple.
L'exemple ci-dessous utilise la méthode dans une fonction permettant
finalement le tri localisé d'un tableau, à comparer avec les résultats
précédents.
<script>
var t1 = ["fee", "echo"];
t1.sort();
alert(t1); // "echo,fee"
var t2 = ["fée", "écho"];
t2.sort();
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
</script>
Oui, je sais, je viens de vérifier et, effectivement, elle est bien
décrite page 101 (para. 15.5.4.9) du standard ECMA 262-3.
Mais quand même, comme je pense ne pas être le seul à m'étonner (et à ne
pas avoir comme livre de chevet préféré l'ouvrage précité), je me
permets d'en faire profiter tout le monde.
La méthode compare la chaîne courante avec celle passée en argument,
tenant compte des paramètres linguistiques de la machine locale.
Ainsi, en français, le "é" sera bien considéré comme étant placé avant
le "f", par exemple.
L'exemple ci-dessous utilise la méthode dans une fonction permettant
finalement le tri localisé d'un tableau, à comparer avec les résultats
précédents.
<script>
var t1 = ["fee", "echo"];
t1.sort();
alert(t1); // "echo,fee"
var t2 = ["fée", "écho"];
t2.sort();
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
</script>
On 10/05/2010 18:08, Pascal wrote:Oui, je sais, je viens de vérifier et, effectivement, elle est bien
décrite page 101 (para. 15.5.4.9) du standard ECMA 262-3.
Mais quand même, comme je pense ne pas être le seul à m'étonner (et à ne
pas avoir comme livre de chevet préféré l'ouvrage précité), je me
permets d'en faire profiter tout le monde.
La méthode compare la chaîne courante avec celle passée en argument,
tenant compte des paramètres linguistiques de la machine locale.
Ainsi, en français, le "é" sera bien considéré comme étant placé avant
le "f", par exemple.
L'exemple ci-dessous utilise la méthode dans une fonction permettant
finalement le tri localisé d'un tableau, à comparer avec les résultats
précédents.
<script>
var t1 = ["fee", "echo"];
t1.sort();
alert(t1); // "echo,fee"
var t2 = ["fée", "écho"];
t2.sort();
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
</script>
Euh mais où sont récupérés les fameux paramètres ?
S'agit-il, comme dans
une collation en BD de la comparaison (ç == c) et le tri ?
Quel est le support effectif de cette méthode dans les navigateurs ?
On 10/05/2010 18:08, Pascal wrote:
Oui, je sais, je viens de vérifier et, effectivement, elle est bien
décrite page 101 (para. 15.5.4.9) du standard ECMA 262-3.
Mais quand même, comme je pense ne pas être le seul à m'étonner (et à ne
pas avoir comme livre de chevet préféré l'ouvrage précité), je me
permets d'en faire profiter tout le monde.
La méthode compare la chaîne courante avec celle passée en argument,
tenant compte des paramètres linguistiques de la machine locale.
Ainsi, en français, le "é" sera bien considéré comme étant placé avant
le "f", par exemple.
L'exemple ci-dessous utilise la méthode dans une fonction permettant
finalement le tri localisé d'un tableau, à comparer avec les résultats
précédents.
<script>
var t1 = ["fee", "echo"];
t1.sort();
alert(t1); // "echo,fee"
var t2 = ["fée", "écho"];
t2.sort();
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
</script>
Euh mais où sont récupérés les fameux paramètres ?
S'agit-il, comme dans
une collation en BD de la comparaison (ç == c) et le tri ?
Quel est le support effectif de cette méthode dans les navigateurs ?
On 10/05/2010 18:08, Pascal wrote:Oui, je sais, je viens de vérifier et, effectivement, elle est bien
décrite page 101 (para. 15.5.4.9) du standard ECMA 262-3.
Mais quand même, comme je pense ne pas être le seul à m'étonner (et à ne
pas avoir comme livre de chevet préféré l'ouvrage précité), je me
permets d'en faire profiter tout le monde.
La méthode compare la chaîne courante avec celle passée en argument,
tenant compte des paramètres linguistiques de la machine locale.
Ainsi, en français, le "é" sera bien considéré comme étant placé avant
le "f", par exemple.
L'exemple ci-dessous utilise la méthode dans une fonction permettant
finalement le tri localisé d'un tableau, à comparer avec les résultats
précédents.
<script>
var t1 = ["fee", "echo"];
t1.sort();
alert(t1); // "echo,fee"
var t2 = ["fée", "écho"];
t2.sort();
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
</script>
Euh mais où sont récupérés les fameux paramètres ?
S'agit-il, comme dans
une collation en BD de la comparaison (ç == c) et le tri ?
Quel est le support effectif de cette méthode dans les navigateurs ?
On 10/05/2010 18:08, Pascal wrote:
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
Il me semblait qu'on en avait déjà parlé cette année (ou précédente ?)
Olivier Miakinen ?
(ça semble bien être du genre de ses centres d'intérêt c't'affaire)
Euh mais où sont récupérés les fameux paramètres ?
Pas compris le sens de la question.
Les paramètres sont les valeurs des éléments du tableau (de l'array).
non ?
S'agit-il, comme dans
une collation en BD de la comparaison (ç == c) et le tri ?
Quel est le support effectif de cette méthode dans les navigateurs ?
Question JS et fonction sort() :
« The localeCompare performs a locale-sensitive string comparison of the
stringVar and the stringExp and returns -1, 0, or +1, depending on the
sort order of the system default locale. »
nous dit M$ ici :
<http://msdn.microsoft.com/en-us/library/62b7ahzy(VS.85).aspx>
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
Le sort se fait donc un peu comme un tri d'un tableau à 2 dimensions,
la 2ième dimension étant celle de l'ordre (alphabétique) local,
dirait-on ?
On 10/05/2010 18:08, Pascal wrote:
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
Il me semblait qu'on en avait déjà parlé cette année (ou précédente ?)
Olivier Miakinen ?
(ça semble bien être du genre de ses centres d'intérêt c't'affaire)
Euh mais où sont récupérés les fameux paramètres ?
Pas compris le sens de la question.
Les paramètres sont les valeurs des éléments du tableau (de l'array).
non ?
S'agit-il, comme dans
une collation en BD de la comparaison (ç == c) et le tri ?
Quel est le support effectif de cette méthode dans les navigateurs ?
Question JS et fonction sort() :
« The localeCompare performs a locale-sensitive string comparison of the
stringVar and the stringExp and returns -1, 0, or +1, depending on the
sort order of the system default locale. »
nous dit M$ ici :
<http://msdn.microsoft.com/en-us/library/62b7ahzy(VS.85).aspx>
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
Le sort se fait donc un peu comme un tri d'un tableau à 2 dimensions,
la 2ième dimension étant celle de l'ordre (alphabétique) local,
dirait-on ?
On 10/05/2010 18:08, Pascal wrote:
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
Il me semblait qu'on en avait déjà parlé cette année (ou précédente ?)
Olivier Miakinen ?
(ça semble bien être du genre de ses centres d'intérêt c't'affaire)
Euh mais où sont récupérés les fameux paramètres ?
Pas compris le sens de la question.
Les paramètres sont les valeurs des éléments du tableau (de l'array).
non ?
S'agit-il, comme dans
une collation en BD de la comparaison (ç == c) et le tri ?
Quel est le support effectif de cette méthode dans les navigateurs ?
Question JS et fonction sort() :
« The localeCompare performs a locale-sensitive string comparison of the
stringVar and the stringExp and returns -1, 0, or +1, depending on the
sort order of the system default locale. »
nous dit M$ ici :
<http://msdn.microsoft.com/en-us/library/62b7ahzy(VS.85).aspx>
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
Le sort se fait donc un peu comme un tri d'un tableau à 2 dimensions,
la 2ième dimension étant celle de l'ordre (alphabétique) local,
dirait-on ?
Le 11/05/2010 15:52, SAM répondait à Pascal et à Pierre Goiffon :On 10/05/2010 18:08, Pascal wrote:alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
Euh mais où sont récupérés les fameux paramètres ?
Pas compris le sens de la question.
Les paramètres sont les valeurs des éléments du tableau (de l'array).
non ?
À mon avis, Pierre se demande quelle locale est utilisée (réponse :
celle du système si j'ai bien tout compris).
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
C'est rigolo, ici ils ne parlent pas de la locale du système. Est-ce que
Mozilla & Co utilise une locale spécifique au lieu de celle de la machine ?
Le 11/05/2010 15:52, SAM répondait à Pascal et à Pierre Goiffon :
On 10/05/2010 18:08, Pascal wrote:
alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
Euh mais où sont récupérés les fameux paramètres ?
Pas compris le sens de la question.
Les paramètres sont les valeurs des éléments du tableau (de l'array).
non ?
À mon avis, Pierre se demande quelle locale est utilisée (réponse :
celle du système si j'ai bien tout compris).
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
C'est rigolo, ici ils ne parlent pas de la locale du système. Est-ce que
Mozilla & Co utilise une locale spécifique au lieu de celle de la machine ?
Le 11/05/2010 15:52, SAM répondait à Pascal et à Pierre Goiffon :On 10/05/2010 18:08, Pascal wrote:alert(t2); // "fée,écho"
t2.sort(function(a,b) { return a.localeCompare(b) });
alert(t2); // "écho,fée"
Euh mais où sont récupérés les fameux paramètres ?
Pas compris le sens de la question.
Les paramètres sont les valeurs des éléments du tableau (de l'array).
non ?
À mon avis, Pierre se demande quelle locale est utilisée (réponse :
celle du système si j'ai bien tout compris).
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
C'est rigolo, ici ils ne parlent pas de la locale du système. Est-ce que
Mozilla & Co utilise une locale spécifique au lieu de celle de la machine ?
À mon avis, Pierre se demande quelle locale est utilisée (réponse :
celle du système si j'ai bien tout compris).
ça semblerait
sinon il faudrait une variable pour indiquer quelle localité, non ?
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
C'est rigolo, ici ils ne parlent pas de la locale du système. Est-ce que
Mozilla & Co utilise une locale spécifique au lieu de celle de la machine ?
Une autre page alors :
<https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Date/ToLocaleString>
À mon avis, Pierre se demande quelle locale est utilisée (réponse :
celle du système si j'ai bien tout compris).
ça semblerait
sinon il faudrait une variable pour indiquer quelle localité, non ?
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
C'est rigolo, ici ils ne parlent pas de la locale du système. Est-ce que
Mozilla & Co utilise une locale spécifique au lieu de celle de la machine ?
Une autre page alors :
<https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Date/ToLocaleString>
À mon avis, Pierre se demande quelle locale est utilisée (réponse :
celle du système si j'ai bien tout compris).
ça semblerait
sinon il faudrait une variable pour indiquer quelle localité, non ?
Du côté gecko (Mozilla et dérivés) c'est ici :
<https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/localeCompare>
JS 1.5 minima (à ce que j'ai compris)
C'est rigolo, ici ils ne parlent pas de la locale du système. Est-ce que
Mozilla & Co utilise une locale spécifique au lieu de celle de la machine ?
Une autre page alors :
<https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Date/ToLocaleString>
Bonjour à tous,
Merci pour vos commentaires et votre intérêt pour la chose.
Continuant sur ma lancée, je propose modestement ce code à la communauté
(libre de droits, bien entendu).
L'idée est donc d'ajouter une nouvelle méthode à l'objet Array.
Celle-ci permet de trier un tableau, si les éléments sont des chaînes,
en tenant compte des paramètres linguistiques de localisation.
Un argument optionnel permet de choisir un ordre de tri ascendant
(valeur "asc", par défaut) ou descendant (valeur "desc").
Une exception est levée si un argument non légitime est passé.
<script>
if (! Array.prototype.localeSort) {
/**
* Sort an array of strings into localized ordering.
* @param order (string) Optional, order into which sort must be done.
* Legal values are "asc" or "desc". Default value is "asc".
* @return void
*/
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default value is "asc".
var order = String(arguments[0] || "asc");
// Whatever the order is, perform a localized sort.
this.sort(function(a,b) { return a.localeCompare(b) });
switch (order) {
case "asc": break;
case "desc": // Simply reverse the array for this case.
this.reverse();
break;
default: // Throw an exception if not a valid argument.
var msg = "Single optional argument must be one of
['asc'|'desc']."
throw new Error(msg);
}
}
}
</script>
Testé FF 3.6 et IE 8.
Je reste complètement ouvert à vos apports pour améliorer le code.
Vous avez même le droit de me dire que je perds mon temps. ;-)
Cordialement,
Pascal
Bonjour à tous,
Merci pour vos commentaires et votre intérêt pour la chose.
Continuant sur ma lancée, je propose modestement ce code à la communauté
(libre de droits, bien entendu).
L'idée est donc d'ajouter une nouvelle méthode à l'objet Array.
Celle-ci permet de trier un tableau, si les éléments sont des chaînes,
en tenant compte des paramètres linguistiques de localisation.
Un argument optionnel permet de choisir un ordre de tri ascendant
(valeur "asc", par défaut) ou descendant (valeur "desc").
Une exception est levée si un argument non légitime est passé.
<script>
if (! Array.prototype.localeSort) {
/**
* Sort an array of strings into localized ordering.
* @param order (string) Optional, order into which sort must be done.
* Legal values are "asc" or "desc". Default value is "asc".
* @return void
*/
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default value is "asc".
var order = String(arguments[0] || "asc");
// Whatever the order is, perform a localized sort.
this.sort(function(a,b) { return a.localeCompare(b) });
switch (order) {
case "asc": break;
case "desc": // Simply reverse the array for this case.
this.reverse();
break;
default: // Throw an exception if not a valid argument.
var msg = "Single optional argument must be one of
['asc'|'desc']."
throw new Error(msg);
}
}
}
</script>
Testé FF 3.6 et IE 8.
Je reste complètement ouvert à vos apports pour améliorer le code.
Vous avez même le droit de me dire que je perds mon temps. ;-)
Cordialement,
Pascal
Bonjour à tous,
Merci pour vos commentaires et votre intérêt pour la chose.
Continuant sur ma lancée, je propose modestement ce code à la communauté
(libre de droits, bien entendu).
L'idée est donc d'ajouter une nouvelle méthode à l'objet Array.
Celle-ci permet de trier un tableau, si les éléments sont des chaînes,
en tenant compte des paramètres linguistiques de localisation.
Un argument optionnel permet de choisir un ordre de tri ascendant
(valeur "asc", par défaut) ou descendant (valeur "desc").
Une exception est levée si un argument non légitime est passé.
<script>
if (! Array.prototype.localeSort) {
/**
* Sort an array of strings into localized ordering.
* @param order (string) Optional, order into which sort must be done.
* Legal values are "asc" or "desc". Default value is "asc".
* @return void
*/
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default value is "asc".
var order = String(arguments[0] || "asc");
// Whatever the order is, perform a localized sort.
this.sort(function(a,b) { return a.localeCompare(b) });
switch (order) {
case "asc": break;
case "desc": // Simply reverse the array for this case.
this.reverse();
break;
default: // Throw an exception if not a valid argument.
var msg = "Single optional argument must be one of
['asc'|'desc']."
throw new Error(msg);
}
}
}
</script>
Testé FF 3.6 et IE 8.
Je reste complètement ouvert à vos apports pour améliorer le code.
Vous avez même le droit de me dire que je perds mon temps. ;-)
Cordialement,
Pascal
Pourquoi trier dans un sens pour le renverser ensuite ?
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Pourquoi trier dans un sens pour le renverser ensuite ?
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Pourquoi trier dans un sens pour le renverser ensuite ?
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
SAM a écrit :Pourquoi trier dans un sens pour le renverser ensuite ?
Bah, je me disais que ce n'était pas très coûteux pour le client web.
Mais ta proposition me plait aussi, donc pourquoi pas.Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Par contre, la gestion quasi booléenne de l'argument, ça vient de quelle
idée ? C'est seulement pour simplifier le code ?
Cordialement,
Pascal
SAM a écrit :
Pourquoi trier dans un sens pour le renverser ensuite ?
Bah, je me disais que ce n'était pas très coûteux pour le client web.
Mais ta proposition me plait aussi, donc pourquoi pas.
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Par contre, la gestion quasi booléenne de l'argument, ça vient de quelle
idée ? C'est seulement pour simplifier le code ?
Cordialement,
Pascal
SAM a écrit :Pourquoi trier dans un sens pour le renverser ensuite ?
Bah, je me disais que ce n'était pas très coûteux pour le client web.
Mais ta proposition me plait aussi, donc pourquoi pas.Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Par contre, la gestion quasi booléenne de l'argument, ça vient de quelle
idée ? C'est seulement pour simplifier le code ?
Cordialement,
Pascal
SAM a écrit :Pourquoi trier dans un sens pour le renverser ensuite ?
Bah, je me disais que ce n'était pas très coûteux pour le client web.
Mais ta proposition me plait aussi, donc pourquoi pas.Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Par contre, la gestion quasi booléenne de l'argument, ça vient de quelle
idée ? C'est seulement pour simplifier le code ?
SAM a écrit :
Pourquoi trier dans un sens pour le renverser ensuite ?
Bah, je me disais que ce n'était pas très coûteux pour le client web.
Mais ta proposition me plait aussi, donc pourquoi pas.
Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Par contre, la gestion quasi booléenne de l'argument, ça vient de quelle
idée ? C'est seulement pour simplifier le code ?
SAM a écrit :Pourquoi trier dans un sens pour le renverser ensuite ?
Bah, je me disais que ce n'était pas très coûteux pour le client web.
Mais ta proposition me plait aussi, donc pourquoi pas.Array.prototype.localeSort = function(/* order */) {
// Argument is optional, default feature is asc sort
(arguments.length>0)?
this.sort(function(a,b) { return b.localeCompare(a) }) :
this.sort(function(a,b) { return a.localeCompare(b) });
}
Par contre, la gestion quasi booléenne de l'argument, ça vient de quelle
idée ? C'est seulement pour simplifier le code ?