--- rpl/src/instructions_t3.c 2010/06/24 10:10:45 1.9 +++ rpl/src/instructions_t3.c 2010/07/01 13:01:25 1.10 @@ -514,7 +514,10 @@ instruction_trim(struct_processus *s_eta { debut = (unsigned char *) (*s_objet_argument).objet; - while(((*debut) != d_code_fin_chaine) && ((*debut) == d_code_espace)) + while(((*debut) != d_code_fin_chaine) && + (((*debut) == d_code_espace) + || ((*debut) == d_code_retour_chariot) + || ((*debut) == d_code_tabulation))) { debut++; } @@ -522,7 +525,10 @@ instruction_trim(struct_processus *s_eta fin = &(((unsigned char *) (*s_objet_argument).objet) [strlen((unsigned char *) (*s_objet_argument).objet) - 1]); - while((fin > debut) && ((*fin) == d_code_espace)) + while((fin > debut) && + (((*fin) == d_code_espace) + || ((*fin) == d_code_retour_chariot) + || ((*fin) == d_code_tabulation))) { fin--; } @@ -591,6 +597,7 @@ instruction_tokenize(struct_processus *s struct_liste_chainee *l_element_courant; + unsigned char *ptr; unsigned char *registre_instruction_courante; unsigned char *registre_definitions_chainees; @@ -640,6 +647,22 @@ instruction_tokenize(struct_processus *s if ((*s_objet_argument).type == CHN) { + // Remplacement des éventuels retours à la ligne et tabulations par + // des espaces. + + ptr = (unsigned char *) (*s_objet_argument).objet; + + while((*ptr) != d_code_fin_chaine) + { + if (((*ptr) == d_code_retour_chariot) || + ((*ptr) == d_code_tabulation)) + { + (*ptr) = d_code_espace; + } + + ptr++; + } + if ((s_objet_resultat = allocation(s_etat_processus, LST)) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;