Alors, au menu de la nouvelle version (utilisable avec TIGCC mais encore conçue pour GTC, pour l'instant) :
Modifications sans aucune importance pour l'utilisateur :
- Le parsing des arguments est déplacé dans une fonction dédiée (suggestion de squalyl, pour une lisibilité meilleure).
- Les fonctions et variables "privées" sont déclarées en
static (merci squalyl et Godzil pour m'avoir remémoré cette fonctionnalité).
- Les fonctions utilisées une seule fois sont déclarées en
inline, pour gagner un peu en vitesse et en taille.
- Appel d'une méthode fournie par le système d'exploitation dans
_set_system_cursor_coordinates_. C'est plus sûr.
- Stockage des arguments parsés (
argv) sur la pile, pour gagner un peu de RAM (suggestion de squalyl qui est pertinente, car on reste bien en dessous des 3,8 ko que bouffe TIGCC).
Modifications très importantes :
- Vérification du nombre de caractères parsés et interruption du programme s'il dépasse la limite (réaliste) de 256. Le cas échéant, le code POSIX 7 est retourné (E2BIG,
Arg list too long).
- La vérification du nombre d'arguments n'était pas complète, que suis-je distrait... C'est corrigé.
Téléchargement
ici !
La version adaptée et plus clean pour TIGCC arrivera ultérieurement.