Shell project

Moul 4df0f1b9f6 [mod] remove execution rights on files. 4 years ago
bareme dc074f9144 [enh] add correction screenshots. 4 years ago
libft 4df0f1b9f6 [mod] remove execution rights on files. 4 years ago
src 4df0f1b9f6 [mod] remove execution rights on files. 4 years ago
.gitignore 1e176bbbc5 [mod] gitignore: add vim tmp file, rm tmp file created. 4 years ago
LICENSE 0b0938d923 initial commit 5 years ago
Makefile 4df0f1b9f6 [mod] remove execution rights on files. 4 years ago
README.md 235fc80551 [enh] some cleaning about herething. 4 years ago
auteur 4df0f1b9f6 [mod] remove execution rights on files. 4 years ago
shell_script.sh 5230434daa [enh] add basic shell script execution as parameter. 4 years ago
tests.sh 24458f290a [fix] pipe: do not display error message. Add tests. 4 years ago

README.md

21 Shell

21 Shell project

Functionnal schema

Three entries:

  • Open Shell
    • Termcaps
    • History
  • Command
  • Script
    • Handle semicolons
    • Launch redirections
    • Launch pipes
    • Launch executions
    • Launch executables
    • Launch built-in: cd, pwd, env, setenv and unsetenv

Bonus

  • Rights in the path (sh1, 21sh)
  • ./21sh -c "cmds" option (sh1, 21sh)
  • Basic script execution (sh1, 21sh)
  • Semicolons ;, pipes, redirections (sh1)
  • Unit tests (sh1, 21sh)
  • Documented code (sh1, 21sh)
  • Functionnal schema (sh1, 21sh)
  • Ctrl + L: clear (sh1, 21sh)
  • Édition dans les hérédoc (sh1, 21sh) (- Pipe avec les backquotes)

Todo

  • Déplacements :

    • déplacements gauche, droite
    • déplacements sur plusieurs lignes
    • déplacements début, fin
    • déplacements sur plusieurs lignes mal positionné
    • déplacements entre mots : à gauche avec ctrl + U et à droite avec ctrl + I
    • positionnement pas exact aux espaces lors des déplacements.
    • déplacement haut et bas entre les lignes avec ctrl + P et crtl + X
    • gérer les limites avec la longueur de la cmd et le nombre de lignes et de colones
    • bloquer la remontée sur le prompt
    • la descente enmène en première position gauche
    • Ne pas descendre dans le vide de la ligne
    • en descendant, le déplacement se fait en diagonale
  • Éditions :

    • insertion caractères à l’endroit du curseur
    • insertion sur plusieurs lignes
    • décalage à apporter pour les lignes inférieures
    • suppression droite et gauche sur la même ligne
    • suppression gauche sur plusieurs lignes
    • suppression droite sur plusieurs lignes
  • Historique :

    • flèche du haut, bas pour naviguer dans l’historique des commandes
    • Corriger le fait de pouvoir se déplacer sur le prompt lors de la navigation dans l’historique
    • Corriger le fait que revenir vers l’historique récent, fait sauter une commande
    • e->cmd non assigné à chaîne de caractères vide lors du déplacement dans l’historique et du retour sur la cmd vide
  • Hérédocs :

    • gérer l’hérédoc avec les termcaps
    • gérer l’édition de ligne : insertion, suppression, déplacements droite et gauche
    • ne plus afficher les caractères des flèches
  • Héréthings :

    • attente fermeture parenthèses, quotes, double quotes, back quotes, crochets, accolades
    • première ligne non récupérée
    • enlever les parenthèses
    • prompt herething non fonctionnel pour (, [ et {.
    • balancer dans le pipe les commandes parenthésées
    • Espaces entre les sauts de lignes ?
  • Autres :

Line editon

  • Begin/End:
    • Home & End
    • Ctrl + A & Ctrl + E
  • Move between words: Ctrl + U & Ctrl + I
  • Move between lines up/down: Ctrl + P & Ctrl + X