01 // LE PROJET EN BREF
42SH
CLe shell final : historique, autocomplétion, alias, scripting — un vrai terminal en équipe.
Le projet qui clôt la première année côté système : reprendre les deux shells précédents et les amener au niveau d'un outil qu'on peut réellement utiliser. Historique navigable avec les flèches, alias chargés depuis un fichier de configuration, jokers sur les noms de fichiers, exécution de commandes imbriquées entre backticks, enchaînements conditionnels. C'est le plus gros projet de groupe de l'année, et celui où l'architecture décide de tout : ce qui n'a pas été prévu au départ finit par ne jamais être fait.
Shell avancé en équipe : édition de ligne en mode brut via termios et termcap, historique navigable, alias chargés depuis un .42shrc, globbing, inhibiteurs, backticks, parenthèses et opérateurs && / || greffés sur l'arbre de commandes du minishell2.
03 // APPORTS CLÉS
- Édition de ligne écrite à la main en mode terminal brut, sans readline
- Autocomplétion par recherche du plus long préfixe commun, historique persistant et rappelable par motif
- Quatre à cinq contributeurs sur une même base : les interfaces internes devaient tenir avant que le code puisse avancer
AU-DELÀ DU SUJET
- Globbing complet, y compris les inhibiteurs (inhibitors.c)
- Backticks avec leur propre mini-bibliothèque de manipulation de chaînes (sources/backticks/)
- Édition de ligne écrite à la main plutôt que readline
- Seize fichiers de tests Criterion
04 // ARBORESCENCE DU CODE
LECTURE DES SOURCES…