In article <
tapoqu$30bq$1@cabale.usenet-fr.net>,
Olivier Miakinen <om+
news@miakinen.net> wrote:
Le 14/07/2022 20:02, Thomas a écrit :
-a param
(peux tu me confirmer pour -a -- si jamais tu réponds avant Alain stp ?)
J'ai déjà répondu. Lorsque le programme lit -a dans les options, il lit
le paramètre qui suit tel quel, sans interprétation.
moi aussi j'ai trouvé plus logique de répondre de l'autre coté. ;-)
Faire autrement, outre que ça ne servirait à rien, rendrait impossible
d'avoir la valeur -- comme paramètre de l'option -a : ce serait donc à
la fois inutile et nuisible !
si on n'en a qu'un seul, on pourrais faire "-a -- --".
mais, tu as raison, si on en a besoin d'un 2eme comme ça, c'est cuit !
[...]
Ça me rappelle cette anecdote d'un logiciel où
le message « press any key to continue » aurait été changé en « press
a key to continue », parce que des utilisateurs ne savaient pas trouver
la touche « any » mais qu'ils savaient trouver la touche « a ».
ça ressemble à une réaction d'autiste :-)
Peut-être. Attention quand même à ne pas avoir une vision trop caricaturale
de ce qu'est un autiste.
je le suis,
par contre ma remarque est basée bcp plus sur ce que j'ai appris que sur
mon expérience perso.
tu as raison de dire d'être vigilant sur ce sujet,
par contre je crois que c'est assez souvent une bonne chose de mettre le
sujet sur la table quand on en a l'occasion, ne serais-ce que pour
sensibiliser "par force" les ignorants, même si on n'a pas une précision
"d'horloger suisse"
(à condition que personne ne soit dogmatique, sinon j'imagine que ça
peut vite fiche les choses par terre).
Par exemple je me suis rendu compte récemment que
j'ai de nombreux traits autistiques, et que c'était déjà dans la famille
avant moi.
tu aurais éventuellement intérêt à vérifier.
c'est tout à fait optionnel si tu trouves ton environnement confortable
et ton entourage bienveillant.
[...]
si jamais ça t'intéresse, voilà les liens pertinents :
Page d'accueil du projet :
http://savannah.nongnu.org/projects/rapid/
§
RAPID is the Rapid Ada Portable Interface Design tool.
§
Haha, j'aime bien les acronymes récursifs. ;-)
:-)
perso je considère que c'est pas rigoureusement récursif, parce que le
"Rapid" désigné par le R est l'adjectif.
mais d'après moi l'auteur a d'autant plus de mérite, par rapport à ceux
qui sont rigoureusement récursif.
par ex HAC (HAC Ada Compiler) (
https://hacadacompiler.sourceforge.io/ ),
même s'il a probablement aussi voulu faire un jeu de mots avec
"hacking", pour son acronyme il a pu choisir la 1ere lettre qu'il
voulait, elle ne lui était pas imposée par son acronyme.
je n'ai encore jamais vu d'acronyme récursif dont l'acronyme ne serait
pas le 1er mot, du genre :
RADAR = Radio Aberration Detection Acronym RADAR
c'est pas évident : l'initiale de l'acronyme doit obligatoirement
correspondre à la lettre de la place qu'il occupe.
(bon, je n'arrive pas tellement à être clair, mais je suppose que tu
arrives quand même à me suivre. :-) )
Il y a peu de chances que j'aie l'occasion d'apprendre et d'utiliser Ada, de
même qu'il y a peu de chances que j'aie besoin de créer des programmes avec
une interface graphique. Cela fait deux raisons qui m'incitent à penser que
je n'utiliserai pas rapid.
Cela étant dit, tout est toujours possible : il y a un peu plus d'un an,
jamais
je n'aurais imaginé me mettre à programmer en Python, et pourtant je m'y suis
mis en quelques jours pour un besoin précis.
bon, he bien ... pour mon ego, je souhaite que tu t'y mettes. ;-)
... mais pas demain matin, c'est pas possible, c'est pas prêt. :-)
[...]
Avertissement ou erreur, c'est toi qui décides. Mais tu t'es simplifié le
parsing des options en faisant une seule boucle et sans te poser des
questions, jusqu'au moment où tu as enfin *tous* les éléments en main
pour le message le plus approprié.
ce que ça m'inspire, c'est que cette boucle, si elle doit être la même
partout, elle peut être factorisée ...
Oui, c'est en gros le bout d'algorithme que t'avait donné Alain, et c'est
ce que fait en standard la fonction getopt().
getopt() pourrait fournir une structure de données en forme de
map (carte ?), contenant toutes les données qu'on peut vouloir trouver
sur la ligne de commande d'une façon qui soit organisée.
L'argument principal que tu dois donner à getopt, c'est la liste des
noms d'option (en une seule lettre), avec pour chacun d'eux si cette
option attend ou non un paramètre.
je ne suis pas sur que tu aies bien compris,
mais ce qui nous a embrouillé c'est surement :
- qu'en Ada il est autorisé de faire plusieurs fonctions de même nom
avec des paramètres (y compris le retour) différents,
- alors qu'en C je crois bien que c'est interdit.
je parle d'une fonction getopt() à laquelle on donne les mêmes
paramètres d'entrée, mais :
- qu'on n'appelle qu'une seule fois,
- au lieu de donner des infos sur 1 switch à la fois,
ça retourne une structure de données contenant toutes les infos sur tous
les switches.
à nous, ensuite, d'aller piocher dans cette structure de données ce
qu'on cherche.
à propos, est-ce qu'il y a des cas de figure où on ne donne pas tout le
temps les mêmes paramètres d'entrée à getopt() ?
Désolé, j'ai déjà beaucoup écrit, je n'ai pas le courage de continuer.
il n'en restait plus bcp,
mais si tu avais encore des choses à dire et que tu as de nouveau du
courage, ça sera avec plaisir :-))
Bah, en gros tu me demandais mon avis sur une syntaxe moins standard du
style de cvs ou svn. Comme c'est moins standard, je n'ai pas vraiment
d'avis bien tranché dessus. C'est surtout ça qui fait que je manque de
courage pour y réfléchir.
ok.
alors une condition pour le faire si je me met à getopt(), c'est que
cette fonction soit compatible avec cet usage.
(mais tu ne sais probablement pas, si tu ne t'en sers pas (?) )
je me rappelle d'une question connexe :
j'ai remarqué que svn, comme make, autorise l'auto-complétion, avec ses
commandes à lui.
quand c'est pour les fichiers, le shell se débrouille avec le système,
pas besoin d'interaction avec le programme.
mais là, comment ça se passe ?
est-ce que ça nécessite des fonctions posix, pas forcément portables ?
-- RAPID maintainerhttp://savannah.nongnu.org/projects/rapid/