/* * * Programme principal * */ #include #include #include "main.h" #include "hash.h" #include "parser.h" #include "polynom.h" #include "pile.h" #include "exceptions.h" #include "scalaires.h" #include "interface.h" #include "terminal.h" #include "config.h" _TableauVariable variables; char *mute; char valid; /* * Les deux gestionnaires de signaux */ void segfaulthand(int i) { exception(2, _("Signal received: segfault")); } void ctrlbreakhand(int i) { exception(1, _("Signal received: break")); } /* * Les routines generales */ void init_all(char *m) { Initialise(&variables); /* * nom de la variable utilisee pour la saisie des polynomes, a recuperer en argv * ATTENTION: elle est case sensitive */ if (m) { mute = m; } else { mute = "x"; } display = DEC; } void flush_all(void) { } void invite(void) { fprintf(stderr, "Polynomia v1.0\n\n"); } /* * Et notre main. On ne fait que lancer la boucle principale de l'interface */ int main(int argc, char **argv) { setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); invite(); signal(SIGSEGV, segfaulthand); signal(SIGINT, ctrlbreakhand); fprintf(stderr, _("\nPerforming initialisation...\n\n")); init_all(argv[1]); openterm(); initterm(); fprintf(stderr, _("\nStarting interface...\n\n")); ifloop(); fprintf(stderr, _("\nPerforming shutdown...\n\n")); clearterm(); flush_all(); signal(SIGSEGV, NULL); signal(SIGINT, NULL); fprintf(stderr, _("Exiting, bye!\n")); return 0; }