--- rpl/src/analyse_notation_algebrique.c 2013/03/23 16:14:39 1.45 +++ rpl/src/analyse_notation_algebrique.c 2013/03/23 17:46:28 1.46 @@ -116,7 +116,10 @@ analyse_algebrique(struct_processus *s_e if (chaine_algebrique[i] == '"') { - presence_chaine = (presence_chaine == d_faux) ? d_vrai : d_faux; + if (chaine_algebrique[i - 1] != '\\') + { + presence_chaine = (presence_chaine == d_faux) ? d_vrai : d_faux; + } } else if (presence_chaine == d_faux) { @@ -285,8 +288,19 @@ analyse_algebrique(struct_processus *s_e } else if (chaine_travail[i] == '"') { - presence_chaine = (presence_chaine == d_vrai) - ? d_faux : d_vrai; + if (i > 0) + { + if (chaine_travail[i - 1] != '\\') + { + presence_chaine = (presence_chaine == d_vrai) + ? d_faux : d_vrai; + } + } + else + { + presence_chaine = (presence_chaine == d_vrai) + ? d_faux : d_vrai; + } } i++; @@ -323,8 +337,19 @@ analyse_algebrique(struct_processus *s_e if (chaine_travail[j] == '"') { - presence_chaine = (presence_chaine == d_vrai) - ? d_faux : d_vrai; + if (j > 0) + { + if (chaine_travail[j - 1] != '\\') + { + presence_chaine = (presence_chaine == d_vrai) + ? d_faux : d_vrai; + } + } + else + { + presence_chaine = (presence_chaine == d_vrai) + ? d_faux : d_vrai; + } } j++; @@ -375,8 +400,19 @@ analyse_algebrique(struct_processus *s_e { if (chaine_centrale[i] == '"') { - presence_chaine = (presence_chaine == d_faux) - ? d_vrai : d_faux; + if (i > 0) + { + if (chaine_centrale[i - 1] != '\\') + { + presence_chaine = (presence_chaine == d_faux) + ? d_vrai : d_faux; + } + } + else + { + presence_chaine = (presence_chaine == d_faux) + ? d_vrai : d_faux; + } if (i == 1) { @@ -1183,7 +1219,7 @@ test_expression_rpn(unsigned char *chain if (chaine[i - 1] == '"') { i++; - while(chaine[i - 1] != '"') + while(!((chaine[i - 1] == '"') && (chaine[i - 2] != '\\'))) { i++; }