version 1.24, 2012/06/12 11:44:34
|
version 1.33, 2013/03/01 09:29:30
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.9 |
RPL/2 (R) version 4.1.13 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 165 formateur_flux(struct_processus *s_etat_
|
Line 165 formateur_flux(struct_processus *s_etat_
|
{ |
{ |
printf("+++Information : " |
printf("+++Information : " |
"Séquence d'échappement " |
"Séquence d'échappement " |
"inconnue [%d]\n", |
"inconnue (\\x%c%c) [%d]\n", |
|
*ptr_lecture, *(ptr_lecture + 1), |
(int) getpid()); |
(int) getpid()); |
} |
} |
else |
else |
{ |
{ |
printf("+++Warning : Unknown " |
printf("+++Warning : Unknown " |
"escape code " |
"escape code (\\x%c%c) [%d]\n", |
"[%d]\n", (int) getpid()); |
*ptr_lecture, *(ptr_lecture + 1), |
|
(int) getpid()); |
} |
} |
} |
} |
} |
} |
Line 182 formateur_flux(struct_processus *s_etat_
|
Line 184 formateur_flux(struct_processus *s_etat_
|
{ |
{ |
printf("+++Information : " |
printf("+++Information : " |
"Séquence d'échappement " |
"Séquence d'échappement " |
"inconnue [%d]\n", (int) getpid()); |
"tronquée [%d]\n", (int) getpid()); |
} |
} |
else |
else |
{ |
{ |
printf("+++Warning : Unknown escape code " |
printf("+++Warning : Truncated escape code " |
"[%d]\n", (int) getpid()); |
"[%d]\n", (int) getpid()); |
} |
} |
} |
} |
Line 212 formateur_flux(struct_processus *s_etat_
|
Line 214 formateur_flux(struct_processus *s_etat_
|
} |
} |
else |
else |
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*(ptr_lecture + 1)) == d_code_fin_chaine) |
{ |
{ |
printf("+++Information : Séquence d'échappement " |
if ((*s_etat_processus).langue == 'F') |
"inconnue [%d]\n", (int) getpid()); |
{ |
|
printf("+++Information : " |
|
"Séquence d'échappement " |
|
"tronquée [%d]\n", (int) getpid()); |
|
} |
|
else |
|
{ |
|
printf("+++Warning : Truncated escape code " |
|
"[%d]\n", (int) getpid()); |
|
} |
} |
} |
else |
else |
{ |
{ |
printf("+++Warning : Unknown escape code " |
if ((*s_etat_processus).langue == 'F') |
"[%d]\n", (int) getpid()); |
{ |
|
printf("+++Information : Séquence d'échappement " |
|
"inconnue (%c%c) [%d]\n", |
|
*ptr_lecture, *(ptr_lecture + 1), |
|
(int) getpid()); |
|
} |
|
else |
|
{ |
|
printf("+++Warning : Unknown escape code (%c%c) " |
|
"[%d]\n", *ptr_lecture, *(ptr_lecture + 1), |
|
(int) getpid()); |
|
} |
} |
} |
} |
} |
} |
} |
Line 256 formateur_flux(struct_processus *s_etat_
|
Line 278 formateur_flux(struct_processus *s_etat_
|
|
|
unsigned char * |
unsigned char * |
analyse_flux(struct_processus *s_etat_processus, unsigned char *donnees, |
analyse_flux(struct_processus *s_etat_processus, unsigned char *donnees, |
long *longueur) |
long longueur) |
{ |
{ |
|
long longueur_courante; |
long offset; |
long offset; |
|
|
unsigned char *chaine; |
unsigned char *chaine; |
Line 265 analyse_flux(struct_processus *s_etat_pr
|
Line 288 analyse_flux(struct_processus *s_etat_pr
|
unsigned char *ptr_ecriture; |
unsigned char *ptr_ecriture; |
unsigned char *ptr_lecture; |
unsigned char *ptr_lecture; |
|
|
if ((chaine = malloc(((*longueur) = (strlen(donnees)) + 1) |
if ((chaine = malloc((longueur_courante = longueur + 1) * |
* sizeof(unsigned char))) == NULL) |
sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 275 analyse_flux(struct_processus *s_etat_pr
|
Line 298 analyse_flux(struct_processus *s_etat_pr
|
ptr_lecture = donnees; |
ptr_lecture = donnees; |
ptr_ecriture = chaine; |
ptr_ecriture = chaine; |
|
|
while((*ptr_lecture) != d_code_fin_chaine) |
while(longueur > 0) |
{ |
{ |
(*longueur)++; |
|
|
|
// Début de la séquence d'échappement |
// Début de la séquence d'échappement |
|
|
switch((*ptr_lecture)) |
switch((*ptr_lecture)) |
Line 287 analyse_flux(struct_processus *s_etat_pr
|
Line 308 analyse_flux(struct_processus *s_etat_pr
|
case '\b': |
case '\b': |
case '\n': |
case '\n': |
case '\t': |
case '\t': |
|
case '\\': |
{ |
{ |
offset = ptr_ecriture - chaine; |
offset = ptr_ecriture - chaine; |
|
|
if ((chaine = realloc(chaine, ((*longueur) = (*longueur) + 1) |
if ((chaine = realloc(chaine, (++longueur_courante) |
* sizeof(unsigned char))) == NULL) |
* sizeof(unsigned char))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
Line 300 analyse_flux(struct_processus *s_etat_pr
|
Line 322 analyse_flux(struct_processus *s_etat_pr
|
|
|
ptr_ecriture = chaine + offset; |
ptr_ecriture = chaine + offset; |
*ptr_ecriture++ = '\\'; |
*ptr_ecriture++ = '\\'; |
*ptr_ecriture++ = *ptr_lecture++; |
|
(*longueur)++; |
switch((*ptr_lecture++)) |
|
{ |
|
case '"': |
|
{ |
|
*ptr_ecriture++ = '"'; |
|
break; |
|
} |
|
|
|
case '\b': |
|
{ |
|
*ptr_ecriture++ = 'b'; |
|
break; |
|
} |
|
|
|
case '\n': |
|
{ |
|
*ptr_ecriture++ = 'n'; |
|
break; |
|
} |
|
|
|
case '\t': |
|
{ |
|
*ptr_ecriture++ = 't'; |
|
break; |
|
} |
|
|
|
case '\\': |
|
{ |
|
*ptr_ecriture++ = '\\'; |
|
break; |
|
} |
|
} |
|
|
break; |
break; |
} |
} |
|
|
Line 321 analyse_flux(struct_processus *s_etat_pr
|
Line 375 analyse_flux(struct_processus *s_etat_pr
|
{ |
{ |
offset = ptr_ecriture - chaine; |
offset = ptr_ecriture - chaine; |
|
|
if ((chaine = realloc(chaine, ((*longueur) = (*longueur) |
if ((chaine = realloc(chaine, (longueur_courante = |
+ 3) * sizeof(unsigned char))) == NULL) |
longueur_courante + 3) * sizeof(unsigned char))) |
|
== NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = |
d_es_allocation_memoire; |
d_es_allocation_memoire; |
Line 337 analyse_flux(struct_processus *s_etat_pr
|
Line 392 analyse_flux(struct_processus *s_etat_pr
|
|
|
*ptr_ecriture++ = hexadecimal[0]; |
*ptr_ecriture++ = hexadecimal[0]; |
*ptr_ecriture++ = hexadecimal[1]; |
*ptr_ecriture++ = hexadecimal[1]; |
(*longueur) += 3; |
|
} |
} |
|
|
break; |
break; |
} |
} |
} |
} |
|
|
|
longueur--; |
} |
} |
|
|
(*ptr_ecriture) = d_code_fin_chaine; |
(*ptr_ecriture) = d_code_fin_chaine; |