commit 0e29082b35d43354ad4e84c7b4a8f3be17d49502
parent 9c76abfb1444c0a8547382b0cfae64c47161e8d7
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date: Fri, 7 Jun 2024 14:36:54 -0400
ajout d'une option -h
Diffstat:
2 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/aplat.c b/aplat.c
@@ -25,6 +25,7 @@
#define DRAP_OUV 2
static void utilisation(FILE *fichier);
+static void version(void);
static int aplatir(FILE *f);
static int obt_jeton(FILE *fichier, struct tampon *tp);
static int echapper(FILE *fichier, struct tampon *tp);
@@ -41,6 +42,8 @@ struct tampon tp_ctn;
int
main(int argc, char **argv)
{
+ int c;
+
/* trouver le nom du programme */
if ((nom_prog = *argv) == NULL || *nom_prog == '\0')
nom_prog = "aplat";
@@ -59,16 +62,23 @@ main(int argc, char **argv)
return 1;
}
#endif
-
- if (argc == 2 && argv[1][0] == '-' && argv[1][1] == 'V'
- && argv[1][2] == '\0') {
- printf("aplat " VERSION "\n");
- return 0;
- } else if (argc > 1) {
- utilisation(stderr);
- return 1;
+
+ while ((c = getopt(argc, argv, "Vh")) != -1) {
+ switch (c) {
+ case 'V':
+ version();
+ return 0;
+ case 'h':
+ utilisation(stdout);
+ return 0;
+ default:
+ goto erreur;
+ }
}
+ if (argc > 1)
+ goto erreur;
+
/* initialiser les tampons */
if (tp_init(&tp_etq, TP_ETQ_TLL) < 0 ||
tp_init(&tp_ctn, TP_CTN_TLL) < 0)
@@ -78,12 +88,23 @@ main(int argc, char **argv)
return 1;
return 0;
+
+erreur:
+ utilisation(stderr);
+ return 1;
}
static void
utilisation(FILE *f)
{
- fprintf(f, _("Utilisation: %s <[fichier]\n"), nom_prog);
+ fprintf(f, _("Utilisation: %s <[fichier]\n"
+ " %s -V | -h\n"), nom_prog, nom_prog);
+}
+
+static void
+version(void)
+{
+ fprintf(stdout, "%s " VERSION "\n", nom_prog);
}
static int
diff --git a/changements.txt b/changements.txt
@@ -14,6 +14,7 @@ Version 2.0 (???)
* plat(5): Ajout de la séquence d'échappement « /d », qui signifie « : ». Les
deux-points sont donc maintenant échappables.
* aplat(1): La nouvelle option -V affiche la version du programme.
+* aplat(1): La nouvelle optoin -h affiche le synopsis du programme.
* aplat(1): Le raccourcis syntaxique utilisant les deux-points n'existe plus.
* aplat(1): Les blocs sont délimités par le caractère « = », plutôt que par la
séquence « """ ». Ce caractère doit en outre se trouver en début de ligne.