--- rpl/src/interface_tex.c 2010/02/10 10:14:25 1.4 +++ rpl/src/interface_tex.c 2012/05/21 17:25:45 1.40 @@ -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.9 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -20,8 +20,8 @@ */ -#include "rpl.conv.h" -#include "tex.conv.h" +#include "rpl-conv.h" +#include "tex-conv.h" /* @@ -67,7 +67,8 @@ creation_fichier_tex(struct_processus *s return(NULL); } - if (fprintf(fichier_impression, "\\documentclass[%s,%s]{%s}\n\n", + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\documentclass[%s,%s]{%s}\n\n", (*s_etat_processus).format_papier, ds_tex_taille_corps, ds_tex_classe_document) < 0) { @@ -76,89 +77,98 @@ creation_fichier_tex(struct_processus *s } - if (fprintf(fichier_impression, "\\usepackage[%s]{fontenc}\n", - ds_tex_encodage_1) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage[%s]{fontenc}\n", ds_tex_encodage_1) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\usepackage[%s]{inputenc}\n", - ds_tex_encodage_2) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage[%s]{inputenc}\n", ds_tex_encodage_2) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\usepackage[%s]{babel}\n\n", - ds_tex_langue) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage[%s]{babel}\n\n", ds_tex_langue) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\usepackage{latexsym}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage{latexsym}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\usepackage[dvips]{color}\n\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage[dvips]{color}\n\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\usepackage{amsmath}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage{amsmath}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\usepackage{amsfonts}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage{amsfonts}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\usepackage{amssymb}\n\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\usepackage{amssymb}\n\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\title{Fichier d'impression}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\title{Fichier d'impression}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\author{RPL/2 Version %s}\n", - d_version_rpl) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\author{RPL/2 Version %s}\n", d_version_rpl) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\date{}\n\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "\\date{}\n\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\begin{document}\n\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\begin{document}\n\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\thispagestyle{%s}\n", ds_tex_style) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\thispagestyle{%s}\n", ds_tex_style) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); } - if (fprintf(fichier_impression, "\\pagestyle{%s}\n\n", ds_tex_style) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\pagestyle{%s}\n\n", ds_tex_style) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return(NULL); @@ -214,7 +224,7 @@ formateur_tex(struct_processus *s_etat_p if ((*s_objet).type == BIN) { - if (fprintf(fichier_impression, "$$") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "$$") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -223,7 +233,7 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "$$\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "$$\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -239,7 +249,7 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -254,7 +264,7 @@ formateur_tex(struct_processus *s_etat_p ((*s_objet).type == INT) || ((*s_objet).type == REL)) { - if (fprintf(fichier_impression, "$$") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "$$") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -263,7 +273,7 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "$$\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "$$\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -276,7 +286,8 @@ formateur_tex(struct_processus *s_etat_p else if ((*s_objet).type == NOM) { - if (fprintf(fichier_impression, "\\begin{center}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\begin{center}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -285,7 +296,8 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "\\end{center}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{center}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -300,7 +312,8 @@ formateur_tex(struct_processus *s_etat_p ((*s_objet).type == VIN) || ((*s_objet).type == VRL)) { - if (fprintf(fichier_impression, "\\begin{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\begin{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -309,13 +322,15 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "\\nonumber\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\nonumber\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } - if (fprintf(fichier_impression, "\\end{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -330,7 +345,8 @@ formateur_tex(struct_processus *s_etat_p ((*s_objet).type == MRL) || ((*s_objet).type == MCX)) { - if (fprintf(fichier_impression, "\\begin{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\begin{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -339,13 +355,15 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "\\nonumber\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\nonumber\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } - if (fprintf(fichier_impression, "\\end{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -359,7 +377,8 @@ formateur_tex(struct_processus *s_etat_p else if (((*s_objet).type == RPN) || ((*s_objet).type == LST)) { - if (fprintf(fichier_impression, "\\begin{center}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\begin{center}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -368,7 +387,8 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "\\end{center}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{center}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -381,7 +401,8 @@ formateur_tex(struct_processus *s_etat_p else if ((*s_objet).type == ALG) { - if (fprintf(fichier_impression, "\\begin{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\begin{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -390,13 +411,15 @@ formateur_tex(struct_processus *s_etat_p formateur_elementaire_tex(s_etat_processus, fichier_impression, s_objet, environnement); - if (fprintf(fichier_impression, "\\nonumber\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\nonumber\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } - if (fprintf(fichier_impression, "\\end{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -494,8 +517,8 @@ formateur_elementaire_tex(struct_process base = ligne[strlen(ligne) - 1]; ligne[strlen(ligne) - 1] = d_code_fin_chaine; - if (fprintf(fichier_impression, "\\#\\,%s\\text{%c}", - &(ligne[1]), base) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\#\\,%s\\text{%c}", &(ligne[1]), base) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -521,7 +544,7 @@ formateur_elementaire_tex(struct_process correction_formateur_tex(s_etat_processus, &ligne); } - if (fprintf(fichier_impression, "%s", ligne) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "%s", ligne) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -568,7 +591,8 @@ formateur_elementaire_tex(struct_process if (strcmp(instruction_majuscule, "PI") == 0) { - if (fprintf(fichier_impression, "$\\pi$") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "$\\pi$") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -576,7 +600,8 @@ formateur_elementaire_tex(struct_process } else { - if (fprintf(fichier_impression, "\\textrm{%s}", ligne) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\textrm{%s}", ligne) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -587,7 +612,8 @@ formateur_elementaire_tex(struct_process } else { - if (fprintf(fichier_impression, "\\textit{%s}", ligne) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\textit{%s}", ligne) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -615,7 +641,7 @@ formateur_elementaire_tex(struct_process return; } - if (fprintf(fichier_impression, "\\left(") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "\\left(") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -632,7 +658,7 @@ formateur_elementaire_tex(struct_process if (test_cfsf(s_etat_processus, 48) == d_vrai) { - if (fprintf(fichier_impression, ".\\,") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, ".\\,") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -640,7 +666,7 @@ formateur_elementaire_tex(struct_process } else { - if (fprintf(fichier_impression, ",") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, ",") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -650,7 +676,7 @@ formateur_elementaire_tex(struct_process formateur_elementaire_tex(s_etat_processus, fichier_impression, &s_objet_elementaire, environnement); - if (fprintf(fichier_impression, "\\right)") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "\\right)") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -671,7 +697,7 @@ formateur_elementaire_tex(struct_process return; } - if (fprintf(fichier_impression, "%s", ligne) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "%s", ligne) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -686,7 +712,8 @@ formateur_elementaire_tex(struct_process else if ((*s_objet).type == MCX) { - if (fprintf(fichier_impression, "\\left(\\begin{array}{") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\left(\\begin{array}{") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -695,14 +722,14 @@ formateur_elementaire_tex(struct_process for(i = 0; i < (*((struct_matrice *) (*s_objet).objet)) .nombre_colonnes; i++) { - if (fprintf(fichier_impression, "c") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "c") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } } - if (fprintf(fichier_impression, "}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -737,7 +764,8 @@ formateur_elementaire_tex(struct_process if (j == ((*((struct_matrice *) (*s_objet).objet)) .nombre_colonnes - 1)) { - if (fprintf(fichier_impression, " \\\\\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " \\\\\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -746,7 +774,8 @@ formateur_elementaire_tex(struct_process } else { - if (fprintf(fichier_impression, " & ") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " & ") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -758,7 +787,8 @@ formateur_elementaire_tex(struct_process free(s_objet_elementaire.objet); - if (fprintf(fichier_impression, "\\end{array}\\right)\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{array}\\right)\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -771,7 +801,8 @@ formateur_elementaire_tex(struct_process else if ((*s_objet).type == MIN) { - if (fprintf(fichier_impression, "\\left(\\begin{array}{") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\left(\\begin{array}{") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -780,14 +811,14 @@ formateur_elementaire_tex(struct_process for(i = 0; i < (*((struct_matrice *) (*s_objet).objet)) .nombre_colonnes; i++) { - if (fprintf(fichier_impression, "c") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "c") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } } - if (fprintf(fichier_impression, "}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -818,7 +849,8 @@ formateur_elementaire_tex(struct_process if (j == ((*((struct_matrice *) (*s_objet).objet)) .nombre_colonnes - 1)) { - if (fprintf(fichier_impression, " \\\\\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " \\\\\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -827,7 +859,8 @@ formateur_elementaire_tex(struct_process } else { - if (fprintf(fichier_impression, " & ") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " & ") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -839,7 +872,8 @@ formateur_elementaire_tex(struct_process free(s_objet_elementaire.objet); - if (fprintf(fichier_impression, "\\end{array}\\right)\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{array}\\right)\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -852,7 +886,8 @@ formateur_elementaire_tex(struct_process else if ((*s_objet).type == MRL) { - if (fprintf(fichier_impression, "\\left(\\begin{array}{") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\left(\\begin{array}{") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -861,14 +896,14 @@ formateur_elementaire_tex(struct_process for(i = 0; i < (*((struct_matrice *) (*s_objet).objet)) .nombre_colonnes; i++) { - if (fprintf(fichier_impression, "c") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "c") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } } - if (fprintf(fichier_impression, "}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -899,7 +934,8 @@ formateur_elementaire_tex(struct_process if (j == ((*((struct_matrice *) (*s_objet).objet)) .nombre_colonnes - 1)) { - if (fprintf(fichier_impression, " \\\\\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " \\\\\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -908,7 +944,8 @@ formateur_elementaire_tex(struct_process } else { - if (fprintf(fichier_impression, " & ") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " & ") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -920,7 +957,8 @@ formateur_elementaire_tex(struct_process free(s_objet_elementaire.objet); - if (fprintf(fichier_impression, "\\end{array}\\right)\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{array}\\right)\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -989,7 +1027,7 @@ formateur_elementaire_tex(struct_process } } - if (fprintf(fichier_impression, "%s", ligne) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "%s", ligne) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1004,7 +1042,8 @@ formateur_elementaire_tex(struct_process else if ((*s_objet).type == VCX) { - if (fprintf(fichier_impression, "\\left(\\begin{array}{c}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\left(\\begin{array}{c}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1031,7 +1070,8 @@ formateur_elementaire_tex(struct_process formateur_elementaire_tex(s_etat_processus, fichier_impression, &s_objet_elementaire, environnement); - if (fprintf(fichier_impression, " \\\\\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " \\\\\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1040,7 +1080,8 @@ formateur_elementaire_tex(struct_process free(s_objet_elementaire.objet); - if (fprintf(fichier_impression, "\\end{array}\\right)\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{array}\\right)\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1053,7 +1094,8 @@ formateur_elementaire_tex(struct_process else if ((*s_objet).type == VIN) { - if (fprintf(fichier_impression, "\\left(\\begin{array}{c}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\left(\\begin{array}{c}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1077,7 +1119,8 @@ formateur_elementaire_tex(struct_process formateur_elementaire_tex(s_etat_processus, fichier_impression, &s_objet_elementaire, environnement); - if (fprintf(fichier_impression, " \\\\\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " \\\\\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1086,7 +1129,8 @@ formateur_elementaire_tex(struct_process free(s_objet_elementaire.objet); - if (fprintf(fichier_impression, "\\end{array}\\right)\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{array}\\right)\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1099,7 +1143,8 @@ formateur_elementaire_tex(struct_process else if ((*s_objet).type == VRL) { - if (fprintf(fichier_impression, "\\left(\\begin{array}{c}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\left(\\begin{array}{c}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1123,7 +1168,8 @@ formateur_elementaire_tex(struct_process formateur_elementaire_tex(s_etat_processus, fichier_impression, &s_objet_elementaire, environnement); - if (fprintf(fichier_impression, " \\\\\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + " \\\\\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1132,7 +1178,8 @@ formateur_elementaire_tex(struct_process free(s_objet_elementaire.objet); - if (fprintf(fichier_impression, "\\end{array}\\right)\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{array}\\right)\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1150,8 +1197,8 @@ formateur_elementaire_tex(struct_process .nom_fonction, "-") == 0) || (strcmp((*((struct_fonction *) (*s_objet).objet)).nom_fonction, "/") == 0)) { - if (fprintf(fichier_impression, "$%s$", (*((struct_fonction *) - (*s_objet).objet)).nom_fonction) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "$%s$", + (*((struct_fonction *) (*s_objet).objet)).nom_fonction) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1160,7 +1207,8 @@ formateur_elementaire_tex(struct_process else if (strcmp((*((struct_fonction *) (*s_objet).objet)).nom_fonction, "*") == 0) { - if (fprintf(fichier_impression, "$\\times$") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "$\\times$") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1169,7 +1217,8 @@ formateur_elementaire_tex(struct_process else if (strcmp((*((struct_fonction *) (*s_objet).objet)).nom_fonction, "^") == 0) { - if (fprintf(fichier_impression, "$\\,\\hat{}\\,$") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "$\\,\\hat{}\\,$") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1178,7 +1227,8 @@ formateur_elementaire_tex(struct_process else if (strcmp((*((struct_fonction *) (*s_objet).objet)).nom_fonction, "->") == 0) { - if (fprintf(fichier_impression, "$\\rightarrow$") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "$\\rightarrow$") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1199,7 +1249,7 @@ formateur_elementaire_tex(struct_process correction_formateur_tex(s_etat_processus, &ligne); - if (fprintf(fichier_impression, ligne) < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, ligne) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1218,13 +1268,15 @@ formateur_elementaire_tex(struct_process { if ((*s_objet).type == LST) { - if (fprintf(fichier_impression, "\\begin{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\begin{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } - if (fprintf(fichier_impression, "\\left\\{\\text{%%\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\left\\{\\text{%%\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1245,7 +1297,7 @@ formateur_elementaire_tex(struct_process ((*(*l_element_courant).donnee).type == MCX) || ((*(*l_element_courant).donnee).type == BIN)) { - if (fprintf(fichier_impression, "$") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "$") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1254,7 +1306,8 @@ formateur_elementaire_tex(struct_process formateur_elementaire_tex(s_etat_processus, fichier_impression, (*l_element_courant).donnee, environnement); - if (fprintf(fichier_impression, "$%%") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "$%%") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1266,7 +1319,7 @@ formateur_elementaire_tex(struct_process (*l_element_courant).donnee, environnement); } - if (fprintf(fichier_impression, "\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, "\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -1277,13 +1330,15 @@ formateur_elementaire_tex(struct_process if ((*s_objet).type == LST) { - if (fprintf(fichier_impression, "}\\right\\}\\nonumber\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "}\\right\\}\\nonumber\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } - if (fprintf(fichier_impression, "\\end{equation}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{equation}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -2065,14 +2120,13 @@ formateur_elementaire_tex(struct_process return; } - if (fprintf(fichier_impression, "%s", + if (tex_fprintf(s_etat_processus, fichier_impression, "%s", (unsigned char *) (*s_sous_objet).objet) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } - liberation(s_etat_processus, s_sous_objet); liberation(s_etat_processus, s_copie_objet); } @@ -2190,6 +2244,7 @@ impression_tex(struct_processus *s_etat_ file *fichier_impression; unsigned char *commande; + unsigned char *executable_candidat; unsigned char *nom_fichier_aux; unsigned char *nom_fichier_dvi; unsigned char *nom_fichier_log; @@ -2262,7 +2317,8 @@ impression_tex(struct_processus *s_etat_ return; } - if (fprintf(fichier_impression, "\\end{document}\n") < 0) + if (tex_fprintf(s_etat_processus, fichier_impression, + "\\end{document}\n") < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; @@ -2274,15 +2330,100 @@ impression_tex(struct_processus *s_etat_ return; } - if (alsprintf(&commande, ds_tex_commande, - d_exec_path, d_exec_path, d_exec_path, - (*s_etat_processus).nom_fichier_impression, - (*s_etat_processus).nom_fichier_impression, nom_fichier_tex, - (*s_etat_processus).chemin_fichiers_temporaires, - nom_fichier_tex, nom_fichier_dvi, nom_fichier_ps) < 0) + if ((*s_etat_processus).rpl_home == NULL) { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; + if (alsprintf(&commande, ds_tex_commande, + d_exec_path, d_exec_path, d_exec_path, + (*s_etat_processus).nom_fichier_impression, + d_exec_path, d_exec_path, + (*s_etat_processus).nom_fichier_impression, nom_fichier_tex, + (*s_etat_processus).chemin_fichiers_temporaires, + nom_fichier_tex, nom_fichier_dvi, nom_fichier_ps) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (alsprintf(&executable_candidat, "%s/bin/rpliconv", + d_exec_path) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (controle_integrite(s_etat_processus, executable_candidat, + "rpliconv") != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + free(executable_candidat); + + if (alsprintf(&executable_candidat, "%s/bin/rplfile", + d_exec_path) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (controle_integrite(s_etat_processus, executable_candidat, + "rplfile") != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + free(executable_candidat); + } + else + { + if (alsprintf(&commande, ds_tex_commande, + (*s_etat_processus).rpl_home, + (*s_etat_processus).rpl_home, + (*s_etat_processus).rpl_home, + (*s_etat_processus).nom_fichier_impression, + (*s_etat_processus).rpl_home, + (*s_etat_processus).rpl_home, + (*s_etat_processus).nom_fichier_impression, nom_fichier_tex, + (*s_etat_processus).chemin_fichiers_temporaires, + nom_fichier_tex, nom_fichier_dvi, nom_fichier_ps) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (alsprintf(&executable_candidat, "%s/bin/rpliconv", + (*s_etat_processus).rpl_home) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (controle_integrite(s_etat_processus, executable_candidat, + "rpliconv") != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + free(executable_candidat); + + if (alsprintf(&executable_candidat, "%s/bin/rplfile", + (*s_etat_processus).rpl_home) < 0) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return; + } + + if (controle_integrite(s_etat_processus, executable_candidat, + "rplfile") != d_vrai) + { + (*s_etat_processus).erreur_systeme = d_es_somme_controle; + return; + } + + free(executable_candidat); } if (system(commande) != 0)