1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| void parsing(){
int i=0;
int cmot=0;
while(1){
c = getchar();
if (c == '\n') {symboleP = 0;return;}
else if (c == ';') {symboleP = 1;return;}
else if (c == '&') {symboleP = 2;return;}
else if (c == '<') {symboleP = 3;return;}
else if (c == '>') {symboleP = 4;return;}
else if (c == '|') {symboleP = 5;return;}
else if (c == EOF) {symboleP = 7;return;}
else if (c != ' ') {
symboleP = 10;
while(c != '\n' && !strchr(delimiteurs,c)){
i=0;
while(c != 32 ){// je ne comprends pas qu'on la fasse deux fois.
if((c != '\n') && !strchr(delimiteurs,c)){
mot[i]=c;i++;
c=getchar();
}
else {break;}
}
break;
}
while(c == ' ')
{
c=getchar();
}
ungetc(c,stdin);
mot[i]=0;
respP[cmot++]=strdup(mot);
fflush(stdout);
if(c == '\n' || strchr(delimiteurs,c))
{
respP[cmot]=0;
return;
}
}
}
}
void commande () {
pid_t pid, fid;
int background = 0;
int status;
char car;
int i, j, k, l;
int p, p2;
int execute=1;
int output=0;
int input=0;
int tube=0;
int fd[2];
int fich;
while(1){
if(execute==1){
if(symboleP==0){
printf("DAUPHINE> ");
}
for (j=0;j<10;j++){
respP[j]=NULL;
}
execute=0;
background=0;
}
fflush(stdout);
parsing();
switch (symboleP) { |
Partager