version 1.24, 2012/06/12 11:44:34
|
version 1.25, 2012/06/21 16:07:25
|
Line 256 formateur_flux(struct_processus *s_etat_
|
Line 256 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 266 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 276 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 290 analyse_flux(struct_processus *s_etat_pr
|
Line 289 analyse_flux(struct_processus *s_etat_pr
|
{ |
{ |
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 299 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; |
|
} |
|
} |
|
|
break; |
break; |
} |
} |
|
|
Line 321 analyse_flux(struct_processus *s_etat_pr
|
Line 346 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 363 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; |