--- rpl/src/formateur.c 2013/03/16 20:11:29 1.57 +++ rpl/src/formateur.c 2013/03/20 17:11:43 1.58 @@ -47,7 +47,7 @@ formateur(struct_processus *s_etat_proce logical4 autorisation_parenthese; logical4 presence_signe; - long longueur_chaine; + logical8 masque_binaire; struct_liste_chainee *l_atome; struct_liste_chainee *l_element_courant; @@ -72,20 +72,19 @@ formateur(struct_processus *s_etat_proce unsigned char *registre; unsigned char tampon[1024 + 1]; - unsigned long i; - unsigned long j; - unsigned long k; - unsigned long longueur_courante; - unsigned long longueur_decimale_courante; - unsigned long *longueurs_maximales; - unsigned long nombre_arguments; - unsigned long nombre_arguments_fonction; - unsigned long nombre_colonnes; - unsigned long nombre_elements; - unsigned long nombre_lignes; - unsigned long offset; - - integer8 masque_binaire; + integer8 i; + integer8 j; + integer8 k; + integer8 longueur_chaine; + integer8 longueur_courante; + integer8 longueur_decimale_courante; + integer8 *longueurs_maximales; + integer8 nombre_arguments; + integer8 nombre_arguments_fonction; + integer8 nombre_colonnes; + integer8 nombre_elements; + integer8 nombre_lignes; + integer8 offset; chaine = NULL; chaine_formatee = NULL; @@ -104,7 +103,7 @@ formateur(struct_processus *s_etat_proce -------------------------------------------------------------------------------- */ - if (alsprintf(&chaine, "@ %016lX", (*((unsigned long *) + if (alsprintf(&chaine, "@ %016lX", (*((integer8 *) ((*s_objet).objet)))) < 0) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -121,7 +120,7 @@ formateur(struct_processus *s_etat_proce */ if (alsprintf(&chaine, "Library $ %016lX [%s]", - (unsigned long) (*((struct_bibliotheque *) + (integer8) (*((struct_bibliotheque *) (*s_objet).objet)).descripteur, (*((struct_bibliotheque *) (*s_objet).objet)).nom) < 0) { @@ -228,7 +227,7 @@ formateur(struct_processus *s_etat_proce if ((*(*((struct_processus_fils *) (*s_objet).objet)).thread) .processus_detache == d_vrai) { - if (alsprintf(&chaine, "Process $ %016lX", (unsigned long) + if (alsprintf(&chaine, "Process $ %016lX", (integer8) (*(*((struct_processus_fils *) (*s_objet).objet)).thread) .pid) < 0) { @@ -239,9 +238,9 @@ formateur(struct_processus *s_etat_proce else { if (alsprintf(&chaine, "Light weight process $ %016lX/%016lX", - (unsigned long) (*(*((struct_processus_fils *) + (integer8) (*(*((struct_processus_fils *) (*s_objet).objet)).thread).pid, - (unsigned long) (*(*((struct_processus_fils *) + (integer8) (*(*((struct_processus_fils *) (*s_objet).objet)).thread).tid) < 0) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -811,7 +810,7 @@ formateur(struct_processus *s_etat_proce chaine_sauvegarde = (unsigned char *) (*s_sous_objet_2).objet; - if (((*s_sous_objet_2).objet = (void *) + if (((*s_sous_objet_2).objet = malloc((strlen(chaine_sauvegarde) + 2 + 1) * sizeof(unsigned char))) == NULL) { @@ -941,7 +940,7 @@ formateur(struct_processus *s_etat_proce chaine_sauvegarde = (unsigned char *) (*s_sous_objet_1).objet; - if (((*s_sous_objet_1).objet = (void *) + if (((*s_sous_objet_1).objet = malloc((strlen(chaine_sauvegarde) + 2 + 1) * sizeof(unsigned char))) == NULL) { @@ -965,7 +964,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - if (((*s_sous_objet).objet = (void *) malloc((strlen( + if (((*s_sous_objet).objet = malloc((strlen( (unsigned char *) (*s_sous_objet_1).objet) + strlen((*((struct_fonction *) (*(*l_element_courant).donnee).objet)) @@ -1046,7 +1045,7 @@ formateur(struct_processus *s_etat_proce if (autorisation_parenthese == d_vrai) { if (((*s_sous_objet).objet = - (void *) malloc((strlen( + malloc((strlen( (unsigned char *) (*s_sous_objet_1).objet) + strlen((*((struct_fonction *) (*(*l_element_courant).donnee).objet)) @@ -1070,7 +1069,7 @@ formateur(struct_processus *s_etat_proce else { if (((*s_sous_objet).objet = - (void *) malloc((strlen( + malloc((strlen( (unsigned char *) (*s_sous_objet_1).objet) + strlen((*((struct_fonction *) (*(*l_element_courant).donnee).objet)) @@ -1324,14 +1323,14 @@ formateur(struct_processus *s_etat_proce liberation(s_etat_processus, s_sous_objet_3); - if (((*s_sous_objet).objet = (void *) malloc((strlen( + if (((*s_sous_objet).objet = malloc((strlen( (unsigned char *) (*s_sous_objet_1).objet) + strlen((*((struct_fonction *) (*(*l_element_courant).donnee).objet)) .nom_fonction) + strlen((unsigned char *) (*s_sous_objet_2).objet) + 2 + 1 + - parentheses_groupe_gauche + - parentheses_groupe_droit) * + ((size_t) parentheses_groupe_gauche) + + ((size_t) parentheses_groupe_droit)) * sizeof(unsigned char))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -1468,7 +1467,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - (*s_sous_objet).objet = (void *) chaine; + (*s_sous_objet).objet = chaine; if (empilement(s_etat_processus, &((*s_etat_processus) .l_base_pile), s_sous_objet) == d_erreur) @@ -1488,7 +1487,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - if (((*s_sous_objet).objet = (void *) formateur( + if (((*s_sous_objet).objet = formateur( s_etat_processus, 0, (*l_element_courant).donnee)) == NULL) { @@ -1516,8 +1515,8 @@ formateur(struct_processus *s_etat_proce ptrl = chaine_sauvegarde; ptre = (unsigned char *) (*s_sous_objet).objet; - for(ptrl++, i = strlen(chaine_sauvegarde) - 2; i > 0; - i--, *ptre++ = *ptrl++); + for(ptrl++, i = ((integer8) strlen(chaine_sauvegarde)) - 2; + i > 0; i--, *ptre++ = *ptrl++); (*ptre) = d_code_fin_chaine; @@ -1633,7 +1632,7 @@ formateur(struct_processus *s_etat_proce strcpy(chaine, tampon); tampon[0] = 0; - for(i = 0; i < strlen(chaine); i++) + for(i = 0; i < (integer8) strlen(chaine); i++) { switch(chaine[i]) { @@ -1780,7 +1779,7 @@ formateur(struct_processus *s_etat_proce -------------------------------------------------------------------------------- */ - chaine_formatee = formateur_nombre(s_etat_processus, (void *) + chaine_formatee = formateur_nombre(s_etat_processus, ((struct_complexe16 *) ((*s_objet).objet)), 'C'); if (chaine_formatee == NULL) @@ -1888,7 +1887,7 @@ formateur(struct_processus *s_etat_proce -------------------------------------------------------------------------------- */ - chaine_formatee = formateur_nombre(s_etat_processus, (void *) + chaine_formatee = formateur_nombre(s_etat_processus, ((integer8 *) ((*s_objet).objet)), 'I'); if (chaine_formatee == NULL) @@ -1949,7 +1948,7 @@ formateur(struct_processus *s_etat_proce } strcpy(chaine, "<[ "); - offset = strlen(chaine) + offset_initial; + offset = ((integer8) strlen(chaine)) + offset_initial; for(i = 0; i < (*((struct_tableau *) (*s_objet).objet)) .nombre_elements; i++) @@ -2046,7 +2045,7 @@ formateur(struct_processus *s_etat_proce chaine_sauvegarde = chaine; chaine = (unsigned char *) malloc( - (strlen(chaine_sauvegarde) + 1 + offset) + (strlen(chaine_sauvegarde) + 1 + ((size_t) offset)) * sizeof(unsigned char)); if (chaine == NULL) @@ -2154,7 +2153,7 @@ formateur(struct_processus *s_etat_proce l_element_courant = (struct_liste_chainee *) ((*s_objet).objet); nombre_elements = 0; - offset = strlen(chaine) + offset_initial; + offset = ((integer8) strlen(chaine)) + offset_initial; while(l_element_courant != NULL) { @@ -2248,7 +2247,7 @@ formateur(struct_processus *s_etat_proce chaine_sauvegarde = chaine; chaine = (unsigned char *) malloc( - (strlen(chaine_sauvegarde) + 1 + offset) + (strlen(chaine_sauvegarde) + 1 + ((size_t) offset)) * sizeof(unsigned char)); if (chaine == NULL) @@ -2356,10 +2355,10 @@ formateur(struct_processus *s_etat_proce if (chaine != NULL) { strcpy(chaine, "[["); - offset = strlen(chaine) + offset_initial - 1; + offset = ((integer8) strlen(chaine)) + offset_initial - 1; if ((longueurs_maximales = malloc(sizeof(unsigned long) * 2 * - nombre_colonnes)) == NULL) + ((size_t) nombre_colonnes))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; @@ -2378,7 +2377,7 @@ formateur(struct_processus *s_etat_proce for(j = 0; j < nombre_colonnes; j++) { chaine_formatee = formateur_nombre(s_etat_processus, - (void *) &(((struct_complexe16 **) + &(((struct_complexe16 **) ((*((struct_matrice *) ((*s_objet).objet))).tableau))[i][j]), 'C'); @@ -2389,7 +2388,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - longueur_courante = strlen(chaine_formatee); + longueur_courante = (integer8) strlen(chaine_formatee); longueur_decimale_courante = 0; if ((ptrl = index(chaine_formatee, @@ -2423,7 +2422,7 @@ formateur(struct_processus *s_etat_proce for(j = 0; j < nombre_colonnes; j++) { chaine_formatee = formateur_nombre(s_etat_processus, - (void *) &(((struct_complexe16 **) + &(((struct_complexe16 **) ((*((struct_matrice *) ((*s_objet).objet))).tableau))[i][j]), 'C'); @@ -2434,7 +2433,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - longueur_courante = strlen(chaine_formatee); + longueur_courante = (integer8) strlen(chaine_formatee); longueur_decimale_courante = 0; if ((ptrl = index(chaine_formatee, @@ -2453,9 +2452,10 @@ formateur(struct_processus *s_etat_proce chaine = (unsigned char *) malloc( (strlen(chaine_sauvegarde) + - longueur_courante + longueur_decimale_courante + - longueurs_maximales[2 * j] + - longueurs_maximales[(2 * j) + 1] + 2) + ((size_t) longueur_courante) + + ((size_t) longueur_decimale_courante) + + ((size_t) longueurs_maximales[2 * j]) + + ((size_t) longueurs_maximales[(2 * j) + 1]) + 2) * sizeof(unsigned char)); if (chaine == NULL) @@ -2488,7 +2488,8 @@ formateur(struct_processus *s_etat_proce { chaine = (unsigned char *) malloc( (strlen(chaine_sauvegarde) + - longueur_courante + longueur_decimale_courante + ((size_t) longueur_courante) + + ((size_t) longueur_decimale_courante) + 2) * sizeof(unsigned char)); if (chaine == NULL) @@ -2514,8 +2515,8 @@ formateur(struct_processus *s_etat_proce if (test_cfsf(s_etat_processus, 45) == d_vrai) { chaine = (unsigned char *) malloc( - (strlen(chaine_sauvegarde) + 5 + offset) - * sizeof(unsigned char)); + (strlen(chaine_sauvegarde) + 5 + + ((size_t) offset)) * sizeof(unsigned char)); if (chaine == NULL) { @@ -2590,10 +2591,10 @@ formateur(struct_processus *s_etat_proce if (chaine != NULL) { strcpy(chaine, "[["); - offset = strlen(chaine) + offset_initial - 1; + offset = ((integer8) strlen(chaine)) + offset_initial - 1; if ((longueurs_maximales = malloc(sizeof(unsigned long) * - nombre_colonnes)) == NULL) + ((size_t) nombre_colonnes))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return(NULL); @@ -2611,7 +2612,7 @@ formateur(struct_processus *s_etat_proce for(j = 0; j < nombre_colonnes; j++) { chaine_formatee = formateur_nombre(s_etat_processus, - (void *) &(((integer8 **) ((*((struct_matrice *) + &(((integer8 **) ((*((struct_matrice *) ((*s_objet).objet))).tableau))[i][j]), 'I'); if (chaine_formatee == NULL) @@ -2621,7 +2622,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - longueur_courante = strlen(chaine_formatee); + longueur_courante = (integer8) strlen(chaine_formatee); free(chaine_formatee); if (longueurs_maximales[j] < longueur_courante) @@ -2637,7 +2638,7 @@ formateur(struct_processus *s_etat_proce for(j = 0; j < nombre_colonnes; j++) { chaine_formatee = formateur_nombre(s_etat_processus, - (void *) &(((integer8 **) ((*((struct_matrice *) + &(((integer8 **) ((*((struct_matrice *) ((*s_objet).objet))).tableau))[i][j]), 'I'); if (chaine_formatee == NULL) @@ -2647,14 +2648,15 @@ formateur(struct_processus *s_etat_proce return(NULL); } - longueur_courante = strlen(chaine_formatee); + longueur_courante = (integer8) strlen(chaine_formatee); chaine_sauvegarde = chaine; if (test_cfsf(s_etat_processus, 45) == d_vrai) { chaine = (unsigned char *) malloc( - (strlen(chaine_sauvegarde) + longueur_courante - + longueurs_maximales[j] + 2) + (strlen(chaine_sauvegarde) + + ((size_t) longueur_courante) + + ((size_t) longueurs_maximales[j]) + 2) * sizeof(unsigned char)); if (chaine == NULL) @@ -2678,7 +2680,8 @@ formateur(struct_processus *s_etat_proce else { chaine = (unsigned char *) malloc( - (strlen(chaine_sauvegarde) + longueur_courante + (strlen(chaine_sauvegarde) + + ((size_t) longueur_courante) + 2) * sizeof(unsigned char)); if (chaine == NULL) @@ -2704,8 +2707,8 @@ formateur(struct_processus *s_etat_proce if (test_cfsf(s_etat_processus, 45) == d_vrai) { chaine = (unsigned char *) malloc( - (strlen(chaine_sauvegarde) + 5 + offset) - * sizeof(unsigned char)); + (strlen(chaine_sauvegarde) + 5 + + ((size_t) offset)) * sizeof(unsigned char)); if (chaine == NULL) { @@ -2780,10 +2783,10 @@ formateur(struct_processus *s_etat_proce if (chaine != NULL) { strcpy(chaine, "[["); - offset = strlen(chaine) + offset_initial - 1; + offset = ((integer8) strlen(chaine)) + offset_initial - 1; if ((longueurs_maximales = malloc(sizeof(unsigned long) * 2 * - nombre_colonnes)) == NULL) + ((size_t) nombre_colonnes))) == NULL) { (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; return(NULL); @@ -2801,7 +2804,7 @@ formateur(struct_processus *s_etat_proce for(j = 0; j < nombre_colonnes; j++) { chaine_formatee = formateur_nombre(s_etat_processus, - (void *) &(((real8 **) ((*((struct_matrice *) + &(((real8 **) ((*((struct_matrice *) ((*s_objet).objet))).tableau))[i][j]), 'R'); if (chaine_formatee == NULL) @@ -2811,7 +2814,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - longueur_courante = strlen(chaine_formatee); + longueur_courante = (integer8) strlen(chaine_formatee); longueur_decimale_courante = 0; if ((ptrl = index(chaine_formatee, @@ -2845,7 +2848,7 @@ formateur(struct_processus *s_etat_proce for(j = 0; j < nombre_colonnes; j++) { chaine_formatee = formateur_nombre(s_etat_processus, - (void *) &(((real8 **) ((*((struct_matrice *) + &(((real8 **) ((*((struct_matrice *) ((*s_objet).objet))).tableau))[i][j]), 'R'); if (chaine_formatee == NULL) @@ -2855,7 +2858,7 @@ formateur(struct_processus *s_etat_proce return(NULL); } - longueur_courante = strlen(chaine_formatee); + longueur_courante = (integer8) strlen(chaine_formatee); longueur_decimale_courante = 0; if ((ptrl = index(chaine_formatee, @@ -2873,9 +2876,10 @@ formateur(struct_processus *s_etat_proce { chaine = (unsigned char *) malloc( (strlen(chaine_sauvegarde) + - longueur_courante + longueur_decimale_courante + - longueurs_maximales[2 * j] + - longueurs_maximales[(2 * j) + 1] + 2) + ((size_t) longueur_courante) + + ((size_t) longueur_decimale_courante) + + ((size_t) longueurs_maximales[2 * j]) + + ((size_t) longueurs_maximales[(2 * j) + 1]) + 2) * sizeof(unsigned char)); if (chaine == NULL) @@ -2908,7 +2912,8 @@ formateur(struct_processus *s_etat_proce { chaine = (unsigned char *) malloc( (strlen(chaine_sauvegarde) + - longueur_courante + longueur_decimale_courante + ((size_t) longueur_courante) + + ((size_t) longueur_decimale_courante) + 2) * sizeof(unsigned char)); if (chaine == NULL) @@ -2934,8 +2939,8 @@ formateur(struct_processus *s_etat_proce if (test_cfsf(s_etat_processus, 45) == d_vrai) { chaine = (unsigned char *) malloc( - (strlen(chaine_sauvegarde) + 5 + offset) - * sizeof(unsigned char)); + (strlen(chaine_sauvegarde) + 5 + + ((size_t) offset)) * sizeof(unsigned char)); if (chaine == NULL) { @@ -3046,7 +3051,7 @@ formateur(struct_processus *s_etat_proce -------------------------------------------------------------------------------- */ - chaine_formatee = formateur_nombre(s_etat_processus, (void *) + chaine_formatee = formateur_nombre(s_etat_processus, ((real8 *) ((*s_objet).objet)), 'R'); if (chaine_formatee == NULL) @@ -3087,7 +3092,7 @@ formateur(struct_processus *s_etat_proce for(i = 0; i < nombre_colonnes; i++) { - chaine_formatee = formateur_nombre(s_etat_processus, (void *) + chaine_formatee = formateur_nombre(s_etat_processus, &(((struct_complexe16 *) ((*((struct_vecteur *) ((*s_objet).objet))).tableau))[i]), 'C'); @@ -3154,7 +3159,7 @@ formateur(struct_processus *s_etat_proce for(i = 0; i < nombre_colonnes; i++) { - chaine_formatee = formateur_nombre(s_etat_processus, (void *) + chaine_formatee = formateur_nombre(s_etat_processus, &(((integer8 *) ((*((struct_vecteur *) ((*s_objet).objet))).tableau))[i]), 'I'); @@ -3221,7 +3226,7 @@ formateur(struct_processus *s_etat_proce for(i = 0; i < nombre_colonnes; i++) { - chaine_formatee = formateur_nombre(s_etat_processus, (void *) + chaine_formatee = formateur_nombre(s_etat_processus, &(((real8 *) ((*((struct_vecteur *) ((*s_objet).objet))).tableau))[i]), 'R'); @@ -3321,7 +3326,7 @@ formateur_nombre(struct_processus *s_eta strcpy(construction_chaine, "("); tampon = formateur_reel(s_etat_processus, - (void *) &((*((struct_complexe16 *) + &((*((struct_complexe16 *) valeur_numerique)).partie_reelle), 'R'); if (tampon == NULL) @@ -3359,7 +3364,7 @@ formateur_nombre(struct_processus *s_eta } tampon = formateur_reel(s_etat_processus, - (void *) &((*((struct_complexe16 *) + &((*((struct_complexe16 *) valeur_numerique)).partie_imaginaire), 'R'); if (tampon == NULL) @@ -3448,6 +3453,8 @@ formateur_reel(struct_processus *s_etat_ long correction; long dernier_chiffre_significatif; long exposant; + long i; + long j; long longueur_utile; long longueur_utile_limite; @@ -3457,9 +3464,6 @@ formateur_reel(struct_processus *s_etat_ unsigned char *ptr; unsigned char tampon[32 + 1]; - unsigned long i; - unsigned long j; - chaine = (unsigned char *) malloc((32 + 1) * sizeof(unsigned char)); if (chaine == NULL) @@ -3510,7 +3514,7 @@ formateur_reel(struct_processus *s_etat_ exposant = 0; } - mantisse = (*((real8 *) valeur_numerique)) / pow(10, exposant); + mantisse = (*((real8 *) valeur_numerique)) / pow(10, (double) exposant); } else { @@ -3518,13 +3522,13 @@ formateur_reel(struct_processus *s_etat_ if (tampon_entier > ((integer8) 0)) { - exposant = (long) floor(log10(tampon_entier)); + exposant = (long) floor(log10((double) tampon_entier)); } else if (tampon_entier < ((integer8) 0)) { if (tampon_entier != INT64_MIN) { - exposant = (long) floor(log10(-tampon_entier)); + exposant = (long) floor(log10((double) -tampon_entier)); } else { @@ -3537,7 +3541,8 @@ formateur_reel(struct_processus *s_etat_ exposant = 0; } - mantisse = (*((integer8 *) valeur_numerique)) / pow(10, exposant); + mantisse = ((real8) (*((integer8 *) valeur_numerique))) / + pow(10, (double) exposant); } longueur_utile = 0; @@ -3690,7 +3695,7 @@ formateur_reel(struct_processus *s_etat_ sprintf(format, "%%.%luf", longueur_utile); - sprintf(tampon, format, (mantisse * pow(10, exposant))); + sprintf(tampon, format, (mantisse * pow(10, (double) exposant))); strcpy(chaine, tampon); } else if (strcmp(mode, "ENG") == 0) @@ -3713,7 +3718,7 @@ formateur_reel(struct_processus *s_etat_ longueur_utile -= correction; sprintf(format, "%%.%luf", longueur_utile); - sprintf(tampon, format, (mantisse * pow(10, correction))); + sprintf(tampon, format, (mantisse * pow(10, (double) correction))); strcpy(chaine, tampon); strcat(chaine, "E"); sprintf(tampon, "%ld", (exposant - correction)); @@ -3750,7 +3755,7 @@ formateur_reel(struct_processus *s_etat_ sprintf(tampon, format, *((real8 *) valeur_numerique)); - i = strlen(tampon) - 1; + i = ((long) strlen(tampon)) - 1; while(tampon[i] == '0') { tampon[i] = d_code_fin_chaine; @@ -3759,7 +3764,7 @@ formateur_reel(struct_processus *s_etat_ if (ds_imposition_separateur_decimal == d_faux) { - i = strlen(tampon) - 1; + i = ((long) strlen(tampon)) - 1; if (tampon[i] == '.') { tampon[i] = d_code_fin_chaine; @@ -3772,7 +3777,7 @@ formateur_reel(struct_processus *s_etat_ if (test_cfsf(s_etat_processus, 48) == d_vrai) { - for(i = 0; i < strlen(chaine); i++) + for(i = 0; i < (long) strlen(chaine); i++) { if (chaine[i] == '.') {