--- rpl/src/compilation.c 2010/02/10 10:14:18 1.3 +++ rpl/src/compilation.c 2011/11/26 10:01:25 1.36 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.11 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.5 + Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,7 +20,7 @@ */ -#include "rpl.conv.h" +#include "rpl-conv.h" /* @@ -72,7 +72,6 @@ compilation(struct_processus *s_etat_pro (*s_etat_processus).position_courante = 0; - /* -------------------------------------------------------------------------------- Recheche des définitions @@ -831,19 +830,19 @@ swap(void *variable_1, void *variable_2, register unsigned char *t_var_2; register unsigned char variable_temporaire; - register signed long i; + register unsigned long i; t_var_1 = (unsigned char *) variable_1; t_var_2 = (unsigned char *) variable_2; - i = taille; - - for(i--; i >= 0; i--) + for(i = 0; i < taille; i++) { - variable_temporaire = t_var_1[i]; - t_var_1[i] = t_var_2[i]; - t_var_2[i] = variable_temporaire; + variable_temporaire = (*t_var_1); + (*(t_var_1++)) = (*t_var_2); + (*(t_var_2++)) = variable_temporaire; } + + return; } @@ -1687,6 +1686,35 @@ conversion_majuscule(unsigned char *chai return(chaine_convertie); } +void +conversion_majuscule_limitee(unsigned char *chaine_entree, + unsigned char *chaine_sortie, unsigned long longueur) +{ + unsigned long i; + + for(i = 0; i < longueur; i++) + { + if (isalpha((*chaine_entree))) + { + (*chaine_sortie) = (unsigned char) toupper((*chaine_entree)); + } + else + { + (*chaine_sortie) = (*chaine_entree); + } + + if ((*chaine_entree) == d_code_fin_chaine) + { + break; + } + + chaine_entree++; + chaine_sortie++; + } + + return; +} + /* ================================================================================ @@ -1721,9 +1749,9 @@ initialisation_drapeaux(struct_processus cf(s_etat_processus, 32); /* Impression automatique */ cf(s_etat_processus, 33); /* CR automatique (disp) */ - cf(s_etat_processus, 34); /* Valeur principale (intervalle de déf.) */ - sf(s_etat_processus, 35); /* Evaluation symbolique des constantes */ - sf(s_etat_processus, 36); /* Evaluation symbolique des fonctions */ + sf(s_etat_processus, 34); /* Évaluation des caractères de contrôle */ + sf(s_etat_processus, 35); /* Évaluation symbolique des constantes */ + sf(s_etat_processus, 36); /* Évaluation symbolique des fonctions */ sf(s_etat_processus, 37); /* Taille de mot pour les entiers binaires */ sf(s_etat_processus, 38); /* Taille de mot pour les entiers binaires */ sf(s_etat_processus, 39); /* Taille de mot pour les entiers binaires */