Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME III. Les librairies utilitaires

2. Le groupe s_args

2.1 A_init (file s_ainit.c:64)

Syntax

char **A_init(string)
char *string;

Description

Initialise une liste d'arguments : le string présenté est décomposé en une suite de "mots" et placé dans le tableau A_VAL alloué.

Les séparateurs entre les mots sont par défaut les blancs, les tabs, les virgules et les returns (\n). La variable char *A_SEPS est un pointeur vers la liste des séparateurs et peut être modifiée par l'utilisateur.

Lorsque @filename est rencontré, le fichier filename est utilisé pour poursuivre la liste des arguments. A la fin du fichier, la lecture de la suite du string continue.

Lorsque $nom est rencontré, la fonction A_expand() à définir par l'utilisateur est appelé et son output est utilisé pour la suite des arguments. La lecture du string reprend ensuite. La fonction utilisateur A_iexpand() est appelée en début de processus pour permettre l'initialisation du processus de traduction des macros. Si ces deux fonctions ne sont pas définies par l'utilisateur, le programme utilise deux fonctions par défaut.

La fonction alloue un tableau de pointeur A_VAL de type char **. Ce tableau est terminé par un pointeur NULL. Le nombre d'arguments est indiqué par la variable A_NB_VAL.

Le tableau A_VAL est retourné par la fonction, permettant à l'utilisateur d'effectuer plusieurs fois A_init dans le même programme avec des arguments différents. Au prochain appel, A_VAL est réinitialisé pour la nouvelle interprétation, mais pas détruit (pas de free).

Exemple

    Appel :

A_init("-iv file1, *.c file2");

Résultat :

A_VAL === {
"-iv",
"file1",
"ex.c",
"ex2.c",
"file3",
NULL
}

A_NB_VAL === 5

Voir également

A_initv()

2.1.1 File s_ainit.c

A_find(args, string)
A_free(args)
A_help(char **args, int (*fn)(void))
char **A_init(string)
char **A_initv(argv)
A_nb(args, pos)
A_to_be_exp(str)

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be