De mon journal:
conky: Mauvais arguments: '0,0' et '10.0'
conky: échec de la comparaison pour l'expression '0,0 <10.0'
Ces comparaisons sont toutes similaires à celle-ci:
$ {if_match $ {downspeedf enp2s0} <100.0}
La comparaison échoue toujours si l'argument est écrit avec ",". La définition explicite de la locale de conky sur en_US.UTF-8 fonctionne pour le moment.
(Cela ne s'est pas produit dans la version 1.9.0.)
J'ai le même problème.
Pareil ici, pouvez-vous dire s'il vous plaît comment définir un LOCALE spécifique pour conky?
Vous faites précéder la commande par exemple.
LC_ALL = C conky
Merci, mais il s'avère que la comparaison échoue en général avec les nombres de fractions:
conky: échec de la comparaison pour l'expression '12,61> = 10'
${if_match ${top cpu 1} >= 10 }${color red}\
${else}${color}\
${endif}\
Désolé de ma faute, les paramètres régionaux n'étaient pas définis, ils fonctionnaient maintenant. J'utilise maintenant le script de démarrage suivant:
#!/bin/bash
export LANG=en_US.UTF-8
export LC_ALL=C
sleep 5 && conky
Note latérale: il semble que ce soit dans algebra.cc: enum arg_type get_arg_type. Je recommande d'utiliser un analyseur de nombres prenant en charge les paramètres régionaux.
Ce problème est-il toujours en suspens dans la version actuelle de Conky? Si tel est le cas, veuillez mettre à jour le problème. Sinon, le problème sera clos dans 2 semaines.
@lasers Pouvez-vous jeter un oeil?
@ su8 J'ai essayé. Pas familier avec les paramètres régionaux. J'ai essayé l'Italie. Aucune virgule à afficher. Peut-être que je l'ai mal fait.
@ su8 J'ai essayé git bisect ici pour 1.9.0
. Les balises précédentes ne contiennent pas cmake
trucs
NOUS.
0B // False
56.9K // True
16.9K // False
544B // False
74.9K // True
88.4K // True
13.9K // False
DK.
conky: Bad arguments: '0,0' and '50.0'
conky: compare failed for expression '0,0>50.0'
0B // True
conky: Bad arguments: '0,0' and '50.0'
conky: compare failed for expression '0,3>50.0'
307B // True
^Cconky: Bad arguments: '0,3' and '50.0'
conky: compare failed for expression '0,3>50.0'
350B // True
@ su8 Juste au cas où vous auriez manqué le dernier commentaire, je peux le tester maintenant.
Cette ligne est ignorée lors de l'utilisation de paramètres régionaux utilisant ','
et retourne
ce qui provoque l'affichage du "mauvais argument"
Pouvez-vous tester ceci:
diff --git a/src/algebra.cc b/src/algebra.cc
index 66dfd2d6..4e1d36e2 100644
--- a/src/algebra.cc
+++ b/src/algebra.cc
@@ -155,7 +155,7 @@ enum arg_type get_arg_type(const char *arg) {
if (p == e + 1) {
return ARG_LONG;
}
- if (*p == '.') {
+ if (*p == '.' || *p == ',') {
p++;
while (p <= e) {
if (isdigit((unsigned char)*p) == 0) {
Ça marche. Les nombres sont également imprimés avec une virgule. Lazy a copié l'exemple ci-dessus.
56,9K // True
16,9K // False
544B // False
74,9K // True
88,4K // True
13,9K // False
Cela se produit également dans le maître. Hmm. En fait, je pense que c'est correct en l'état. Duh .
Ouvrez une pull request avec ce changement car je suis paresseux pour le faire: hamburger:
Vous n'êtes pas paresseux. Je suis des lasers plus paresseux. Je me demande quelque chose. Si cela contient une virgule, ne devriez-vous pas d'abord permuter les caractères?
Est-ce que cela a du sens ou est-ce que je pense trop?
C'est la norme actuelle du pays, pourquoi la changer pour une autre?
Idk. Noob ici. Je vais faire une demande de tirage à votre demande. À quoi sert if (*p == '.') {
?
Fermé via https://github.com/brndnmtthws/conky/pull/585 : wave: