1: /*
2: ================================================================================
3: RPL/2 (R) version 4.1.36
4: Copyright (C) 1989-2025 Dr. BERTRAND Joël
5:
6: This file is part of RPL/2.
7:
8: RPL/2 is free software; you can redistribute it and/or modify it
9: under the terms of the CeCILL V2 License as published by the french
10: CEA, CNRS and INRIA.
11:
12: RPL/2 is distributed in the hope that it will be useful, but WITHOUT
13: ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14: FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL V2 License
15: for more details.
16:
17: You should have received a copy of the CeCILL License
18: along with RPL/2. If not, write to info@cecill.info.
19: ================================================================================
20: */
21:
22:
23: #define MESSAGES
24: #include "rpl-conv.h"
25:
26:
27: /*
28: ================================================================================
29: Affichage des messages d'erreur
30: ================================================================================
31: Entrées : structure sur l'état du processus
32: --------------------------------------------------------------------------------
33: Sorties : néant
34: --------------------------------------------------------------------------------
35: Effets de bord : néant
36: ================================================================================
37: */
38:
39: unsigned char *
40: messages(struct_processus *s_etat_processus)
41: {
42: logical1 erreur_fonction_externe;
43:
44: unsigned char *message;
45: unsigned char *chaine;
46: unsigned char *argument;
47:
48: chaine = NULL;
49: argument = NULL;
50:
51: erreur_fonction_externe = d_faux;
52:
53: (*s_etat_processus).derniere_exception = d_ep;
54: (*s_etat_processus).derniere_erreur_execution = d_ex;
55: (*s_etat_processus).derniere_erreur_systeme = d_es;
56:
57: if ((*s_etat_processus).erreur_execution != d_ex)
58: {
59: (*s_etat_processus).derniere_erreur_execution =
60: (*s_etat_processus).erreur_execution;
61:
62: /*
63: --------------------------------------------------------------------------------
64: Erreurs dues aux définitions
65: --------------------------------------------------------------------------------
66: */
67:
68: switch((*s_etat_processus).erreur_execution)
69: {
70: case d_ex_pile_vide :
71: {
72: if ((*s_etat_processus).langue == 'F')
73: {
74: chaine = "+++Erreur : Pile opérationnelle vide";
75: }
76: else
77: {
78: chaine = "+++Error : Empty stack";
79: }
80:
81: break;
82: }
83:
84: case d_ex_manque_argument :
85: {
86: if ((*s_etat_processus).langue == 'F')
87: {
88: chaine ="+++Erreur : Arguments insuffisants pour la "
89: "commande '%s'";
90: argument = (*s_etat_processus).instruction_derniere_erreur;
91: }
92: else
93: {
94: chaine = "+++Error : Too few arguments for '%s' "
95: "command";
96: argument = (*s_etat_processus).instruction_derniere_erreur;
97: }
98:
99: break;
100: }
101:
102: case d_ex_argument_invalide :
103: {
104: if ((*s_etat_processus).langue == 'F')
105: {
106: chaine = "+++Erreur : Argument invalide pour la "
107: "commande '%s'";
108: argument = (*s_etat_processus).instruction_derniere_erreur;
109: }
110: else
111: {
112: chaine = "+++Error : Invalid argument for "
113: "'%s' command";
114: argument = (*s_etat_processus).instruction_derniere_erreur;
115: }
116:
117: break;
118: }
119:
120: case d_ex_nom_reserve :
121: {
122: if ((*s_etat_processus).langue == 'F')
123: {
124: chaine = "Erreur : Nom '%s' réservé";
125: argument = (*s_etat_processus).instruction_derniere_erreur;
126: }
127: else
128: {
129: chaine = "Error : '%s' reserved name";
130: argument = (*s_etat_processus).instruction_derniere_erreur;
131: }
132:
133: break;
134: }
135:
136: case d_ex_erreur_type_argument :
137: {
138: if ((*s_etat_processus).langue == 'F')
139: {
140: chaine = "+++Erreur : Type d'argument invalide pour la "
141: "commande '%s'";
142: argument = (*s_etat_processus).instruction_derniere_erreur;
143: }
144: else
145: {
146: chaine = "+++Error : Invalid argument type for "
147: "'%s' command";
148: argument = (*s_etat_processus).instruction_derniere_erreur;
149: }
150:
151: break;
152: }
153:
154: case d_ex_nombre_arguments :
155: {
156: if ((*s_etat_processus).langue == 'F')
157: {
158: chaine = "+++Erreur : Une même fonction apparaît avec "
159: "des nombres d'arguments différents (%s)";
160: argument = (*s_etat_processus).instruction_derniere_erreur;
161: }
162: else
163: {
164: chaine = "+++Error : The same function seems to have "
165: "different numbers of arguments (%s)";
166: argument = (*s_etat_processus).instruction_derniere_erreur;
167: }
168:
169: break;
170: }
171:
172: case d_ex_dimensions_invalides :
173: {
174: if ((*s_etat_processus).langue == 'F')
175: {
176: chaine = "+++Erreur : Dimensions invalides pour "
177: "l'instruction '%s'";
178: argument = (*s_etat_processus).instruction_derniere_erreur;
179: }
180: else
181: {
182: chaine = "+++Erreur : Invalid dimensions for "
183: "'%s' instruction";
184: argument = (*s_etat_processus).instruction_derniere_erreur;
185: }
186:
187: break;
188: }
189:
190: case d_ex_expression_invalide :
191: {
192: if ((*s_etat_processus).langue == 'F')
193: {
194: chaine = "+++Erreur : Expression '%s' invalide";
195: argument = (*s_etat_processus).instruction_derniere_erreur;
196: }
197: else
198: {
199: chaine = "+++Error : Invalid '%s' expression";
200: argument = (*s_etat_processus).instruction_derniere_erreur;
201: }
202:
203: break;
204: }
205:
206: case d_ex_erreur_traitement_condition :
207: {
208: if ((*s_etat_processus).langue == 'F')
209: {
210: chaine = "+++Erreur : Traitement impossible d'une clause "
211: "conditionnelle";
212: }
213: else
214: {
215: chaine = "+++Error : Illegal conditional structure";
216: }
217:
218: break;
219: }
220:
221: case d_ex_erreur_traitement_boucle :
222: {
223: if ((*s_etat_processus).langue == 'F')
224: {
225: chaine = "+++Erreur : Traitement impossible "
226: "d'une boucle";
227: }
228: else
229: {
230: chaine = "+++Error : Illegal loop structure";
231: }
232:
233: break;
234: }
235:
236: case d_ex_variable_non_definie :
237: {
238: if ((*s_etat_processus).langue == 'F')
239: {
240: chaine = "+++Erreur : Variable non définie";
241: }
242: else
243: {
244: chaine = "+++Error : Undefined variable";
245: }
246:
247: break;
248: }
249:
250: case d_ex_drapeau_inexistant :
251: {
252: if ((*s_etat_processus).langue == 'F')
253: {
254: chaine = "+++Erreur : Drapeau inexistant";
255: }
256: else
257: {
258: chaine = "+++Error : Non-existent flag";
259: }
260:
261: break;
262: }
263:
264: case d_ex_nom_invalide :
265: {
266: if ((*s_etat_processus).langue == 'F')
267: {
268: chaine = "+++Erreur : Nom de variable invalide (%s)";
269: argument = (*s_etat_processus).instruction_derniere_erreur;
270: }
271: else
272: {
273: chaine = "+++Error : Invalid variable name (%s)";
274: argument = (*s_etat_processus).instruction_derniere_erreur;
275: }
276:
277: break;
278: }
279:
280: case d_ex_element_inexistant :
281: {
282: if ((*s_etat_processus).langue == 'F')
283: {
284: chaine = "+++Erreur : Indice invalide";
285: }
286: else
287: {
288: chaine = "+++Error : Invalid index";
289: }
290:
291: break;
292: }
293:
294: case d_ex_absence_variable :
295: {
296: if ((*s_etat_processus).langue == 'F')
297: {
298: chaine = "+++Erreur : Absence de variable";
299: }
300: else
301: {
302: chaine = "+++Error : Variable omission";
303: }
304:
305: break;
306: }
307:
308: case d_ex_erreur_evaluation :
309: {
310: if ((*s_etat_processus).langue == 'F')
311: {
312: chaine = "+++Erreur : Erreur dans l'évaluation d'une "
313: "expression";
314: }
315: else
316: {
317: chaine = "+++Error : Error in expression evaluation";
318: }
319:
320: break;
321: }
322:
323: case d_ex_longueur_fft :
324: {
325: if ((*s_etat_processus).langue == 'F')
326: {
327: chaine = "+++Erreur : Longueur de FFT invalide";
328: }
329: else
330: {
331: chaine = "+++Error : Invalid FFT length";
332: }
333:
334: break;
335: }
336:
337: case d_ex_longueur_dft :
338: {
339: if ((*s_etat_processus).langue == 'F')
340: {
341: chaine = "+++Erreur : Longueur de DFT invalide";
342: }
343: else
344: {
345: chaine = "+++Error : Invalid DFT length";
346: }
347:
348: break;
349: }
350:
351: case d_ex_queue_impression :
352: {
353: if ((*s_etat_processus).langue == 'F')
354: {
355: chaine = "+++Erreur : Queue d'impression vide";
356: }
357: else
358: {
359: chaine = "+++Error : Empty printing spool queue";
360: }
361:
362: break;
363: }
364:
365: case d_ex_type_trace_invalide :
366: {
367: if ((*s_etat_processus).langue == 'F')
368: {
369: chaine = "+++Erreur : Type de tracé invalide";
370: }
371: else
372: {
373: chaine = "+++Error : Invalid graph type";
374: }
375:
376: break;
377: }
378:
379: case d_ex_erreur_fichier :
380: {
381: if ((*s_etat_processus).langue == 'F')
382: {
383: chaine = "+++Erreur : Erreur d'entrée/sortie sur un"
384: " fichier ou une socket";
385: }
386: else
387: {
388: chaine = "+++Error : file or socket input/output error";
389: }
390:
391: break;
392: }
393:
394: case d_ex_absence_equation :
395: {
396: if ((*s_etat_processus).langue == 'F')
397: {
398: chaine = "+++Erreur : Absence d'équation";
399: }
400: else
401: {
402: chaine = "+++Error : Equation omission";
403: }
404:
405: break;
406: }
407:
408: case d_ex_erreur_bibliotheque :
409: {
410: if ((*s_etat_processus).langue == 'F')
411: {
412: chaine = "+++Erreur : Erreur portant sur une "
413: "bibliothèque dynamique";
414: }
415: else
416: {
417: chaine = "+++Error : Dynamic library error";
418: }
419:
420: break;
421: }
422:
423: case d_ex_execution_bibliotheque :
424: {
425: if ((*s_etat_processus).langue == 'F')
426: {
427: chaine = "+++Erreur : Problème lors de l'exécution d'une "
428: "fonction externe";
429: }
430: else
431: {
432: chaine = "+++Error : External function execution "
433: "error";
434: }
435:
436: break;
437: }
438:
439: case d_ex_matrice_statistique_invalide :
440: {
441: if ((*s_etat_processus).langue == 'F')
442: {
443: chaine = "+++Erreur : Matrice statistique invalide";
444: }
445: else
446: {
447: chaine = "+++Error : Invalid statistical matrix";
448: }
449:
450: break;
451: }
452:
453: case d_ex_dimensions_matrice_statistique :
454: {
455: if ((*s_etat_processus).langue == 'F')
456: {
457: chaine = "+++Erreur : Dimensions différentes des "
458: "observations et de la matrice statistique";
459: }
460: else
461: {
462: chaine = "+++Error : Invalid dimensions between "
463: "observations and statistical matrix";
464: }
465:
466: break;
467: }
468:
469: case d_ex_absence_observations :
470: {
471: if ((*s_etat_processus).langue == 'F')
472: {
473: chaine = "+++Erreur : Absence de matrice statistique";
474: }
475: else
476: {
477: chaine = "+++Error : Statistical matrix omission";
478: }
479:
480: break;
481: }
482:
483: case d_ex_statistiques_echantillon :
484: {
485: if ((*s_etat_processus).langue == 'F')
486: {
487: chaine = "+++Erreur : Echantillon trop restreint pour un "
488: "calcul de statistique";
489: }
490: else
491: {
492: chaine = "+++Error : Too few statistical observations";
493: }
494:
495: break;
496: }
497:
498: case d_ex_observations_inexistantes :
499: {
500: if ((*s_etat_processus).langue == 'F')
501: {
502: chaine = "+++Erreur : Colonne d'observations "
503: "inexistante";
504: }
505: else
506: {
507: chaine = "+++Error : Non-existent observations column";
508: }
509:
510: break;
511: }
512:
513: case d_ex_syntaxe :
514: {
515: if ((*s_etat_processus).langue == 'F')
516: {
517: chaine = "+++Erreur : Erreur de syntaxe";
518: }
519: else
520: {
521: chaine = "+++Error : Syntax error";
522: }
523:
524: break;
525: }
526:
527: case d_ex_cycle_hors_boucle :
528: {
529: if ((*s_etat_processus).langue == 'F')
530: {
531: chaine = "+++Erreur : Instruction 'CYCLE' hors d'une"
532: " boucle définie";
533: }
534: else
535: {
536: chaine = "+++Error : 'CYCLE' instruction out of any "
537: "defined loop";
538: }
539:
540: break;
541: }
542:
543: case d_ex_conversion_unite :
544: {
545: if ((*s_etat_processus).langue == 'F')
546: {
547: chaine = "+++Erreur : Conversion d'unité impossible";
548: }
549: else
550: {
551: chaine = "+++Error : Unit translation impossible";
552: }
553:
554: break;
555: }
556:
557: case d_ex_erreur_parametre_fichier :
558: {
559: if ((*s_etat_processus).langue == 'F')
560: {
561: chaine = "+++Erreur : Paramètre de fichier ou de socket "
562: "invalide";
563: }
564: else
565: {
566: chaine = "+++Error : Invalid file or socket parameter";
567: }
568:
569: break;
570: }
571:
572: case d_ex_erreur_acces_fichier :
573: {
574: if ((*s_etat_processus).langue == 'F')
575: {
576: chaine = "+++Erreur : Erreur d'accès à un fichier ou à une"
577: " socket";
578: }
579: else
580: {
581: chaine = "+++Error : File or socket access error";
582: }
583:
584: break;
585: }
586:
587: case d_ex_erreur_requete_fichier :
588: {
589: if ((*s_etat_processus).langue == 'F')
590: {
591: chaine = "+++Erreur : Erreur de requête envers un "
592: "fichier";
593: }
594: else
595: {
596: chaine = "+++Error : File request error";
597: }
598:
599: break;
600: }
601:
602: case d_ex_erreur_format_fichier :
603: {
604: if ((*s_etat_processus).langue == 'F')
605: {
606: chaine = "+++Erreur : Erreur de format";
607: }
608: else
609: {
610: chaine = "+++Error : Format error";
611: }
612:
613: break;
614: }
615:
616: case d_ex_fichier_verrouille :
617: {
618: if ((*s_etat_processus).langue == 'F')
619: {
620: chaine = "+++Erreur : Fichier verrouillé";
621: }
622: else
623: {
624: chaine = "+++Error : Locked file";
625: }
626:
627: break;
628: }
629:
630: case d_ex_verrou_indefini :
631: {
632: if ((*s_etat_processus).langue == 'F')
633: {
634: chaine = "+++Erreur : Verrou indéfini";
635: }
636: else
637: {
638: chaine = "+++Error : Undefined lock";
639: }
640:
641: break;
642: }
643:
644: case d_ex_fin_de_fichier_atteinte :
645: {
646: if ((*s_etat_processus).langue == 'F')
647: {
648: chaine = "+++Erreur : Fin de fichier atteinte";
649: }
650: else
651: {
652: chaine = "+++Error : End of file reached";
653: }
654:
655: break;
656: }
657:
658: case d_ex_debut_de_fichier_atteint :
659: {
660: if ((*s_etat_processus).langue == 'F')
661: {
662: chaine = "+++Erreur : Début de fichier atteint";
663: }
664: else
665: {
666: chaine = "+++Error : Beginning of file reached";
667: }
668:
669: break;
670: }
671:
672: case d_ex_erreur_type_fichier :
673: {
674: if ((*s_etat_processus).langue == 'F')
675: {
676: chaine = "+++Erreur : Type de fichier invalide";
677: }
678: else
679: {
680: chaine = "+++Error : Invalid file type";
681: }
682:
683: break;
684: }
685:
686: case d_ex_fichier_vide :
687: {
688: if ((*s_etat_processus).langue == 'F')
689: {
690: chaine = "+++Erreur : Fichier vide";
691: }
692: else
693: {
694: chaine = "+++Error : Empty file";
695: }
696:
697: break;
698: }
699:
700: case d_ex_dimensions_differentes :
701: {
702: if ((*s_etat_processus).langue == 'F')
703: {
704: chaine = "+++Erreur : Dimensions différentes pour "
705: "deux graphiques à superposer";
706: }
707: else
708: {
709: chaine = "+++Error : Invalid graphical dimension";
710: }
711:
712: break;
713: }
714:
715: case d_ex_routines_mathematiques :
716: {
717: if ((*s_etat_processus).langue == 'F')
718: {
719: chaine = "+++Erreur : Erreur interne dans la routine"
720: " mathématique '%s'";
721: argument = (*s_etat_processus).instruction_derniere_erreur;
722: }
723: else
724: {
725: chaine = "+++Error : Internal error in mathematical"
726: " subroutine '%s'";
727: argument = (*s_etat_processus).instruction_derniere_erreur;
728: }
729:
730: break;
731: }
732:
733: case d_ex_exit_hors_boucle :
734: {
735: if ((*s_etat_processus).langue == 'F')
736: {
737: chaine = "+++Erreur : Instruction 'EXIT' hors d'une"
738: " boucle";
739: }
740: else
741: {
742: chaine = "+++Error : 'EXIT' instruction out of any "
743: "loop";
744: }
745:
746: break;
747: }
748:
749: case d_ex_processus :
750: {
751: if ((*s_etat_processus).langue == 'F')
752: {
753: chaine = "+++Erreur : Processus inexistant";
754: }
755: else
756: {
757: chaine = "+++Error : Non-existent process";
758: }
759:
760: break;
761: }
762:
763: case d_ex_image_processus :
764: {
765: if ((*s_etat_processus).langue == 'F')
766: {
767: chaine = "+++Erreur : Création impossible de l'image"
768: " du processus courant";
769: }
770: else
771: {
772: chaine = "+++Error : Cannot create dump of current process";
773: }
774:
775: break;
776: }
777:
778: case d_ex_erreur_sql :
779: {
780: if ((*s_etat_processus).langue == 'F')
781: {
782: chaine = "+++Erreur : Requête SQL invalide";
783: }
784: else
785: {
786: chaine = "+++Error : Invalid SQL query";
787: }
788:
789: break;
790: }
791:
792: case d_ex_variable_verrouillee :
793: {
794: if ((*s_etat_processus).langue == 'F')
795: {
796: chaine = "+++Erreur : Variable verrouillée";
797: }
798: else
799: {
800: chaine = "+++Error : Locked variable";
801: }
802:
803: break;
804: }
805:
806: case d_ex_variable_volatile :
807: {
808: if ((*s_etat_processus).langue == 'F')
809: {
810: chaine = "+++Erreur : Variable volatile";
811: }
812: else
813: {
814: chaine = "+++Error : Volatile variable";
815: }
816:
817: break;
818: }
819:
820: case d_ex_erreur_processus :
821: {
822: if ((*s_etat_processus).langue == 'F')
823: {
824: chaine = "+++Erreur : Commande inconnue";
825: }
826: else
827: {
828: chaine = "+++Error : Unknown command";
829: }
830:
831: break;
832: }
833:
834: case d_ex_erreur_impression :
835: {
836: if ((*s_etat_processus).langue == 'F')
837: {
838: chaine = "+++Erreur : Fichier d'impression erroné";
839: }
840: else
841: {
842: chaine = "+++Error : Erroneous print file";
843: }
844:
845: break;
846: }
847:
848: case d_ex_nombre_arguments_fonction :
849: {
850: if ((*s_etat_processus).langue == 'F')
851: {
852: chaine = "+++Erreur : Nombre d'arguments invalide";
853: }
854: else
855: {
856: chaine = "+++Error : Invalid number of arguments";
857: }
858:
859: break;
860: }
861:
862: case d_ex_fonction_indisponible :
863: {
864: if ((*s_etat_processus).langue == 'F')
865: {
866: chaine = "+++Erreur : Fonction indisponible";
867: }
868: else
869: {
870: chaine = "+++Error : Unavailable function";
871: }
872:
873: break;
874: }
875:
876: case d_ex_bibliotheque_chargee :
877: {
878: if ((*s_etat_processus).langue == 'F')
879: {
880: chaine = "+++Erreur : Bibliothèque ouverte";
881: }
882: else
883: {
884: chaine = "+++Error : Opened library";
885: }
886:
887: break;
888: }
889:
890: case d_ex_aucun_symbole :
891: {
892: if ((*s_etat_processus).langue == 'F')
893: {
894: chaine = "+++Erreur : Aucun symbole déclaré";
895: }
896: else
897: {
898: chaine = "+++Error : Too few symbols";
899: }
900:
901: break;
902: }
903:
904: case d_ex_definition_ambigue :
905: {
906: if ((*s_etat_processus).langue == 'F')
907: {
908: chaine = "+++Erreur : Définition externe ambiguë";
909: }
910: else
911: {
912: chaine = "+++Error : Ambiguous external definition";
913: }
914:
915: break;
916: }
917:
918: case d_ex_fichier_hors_contexte :
919: {
920: if ((*s_etat_processus).langue == 'F')
921: {
922: chaine = "+++Erreur : Descripteur hors contexte";
923: }
924: else
925: {
926: chaine = "+++Error : Context mismatch";
927: }
928:
929: break;
930: }
931:
932: case d_ex_socket_en_ecoute :
933: {
934: if ((*s_etat_processus).langue == 'F')
935: {
936: chaine = "+++Erreur : Connexion refusée sur une socket"
937: " en attente";
938: }
939: else
940: {
941: chaine = "+++Error : Connexion refused on a"
942: " waiting socket";
943: }
944:
945: break;
946: }
947:
948: case d_ex_interruption_invalide :
949: {
950: if ((*s_etat_processus).langue == 'F')
951: {
952: chaine = "+++Erreur : Interruption invalide";
953: }
954: else
955: {
956: chaine = "+++Error : Unavailable interrupt";
957: }
958:
959: break;
960: }
961:
962: case d_ex_erreur_transcodage :
963: {
964: if ((*s_etat_processus).langue == 'F')
965: {
966: chaine = "+++Erreur : Erreur de transcodage";
967: }
968: else
969: {
970: chaine = "+++Error : Transcodage error";
971: }
972:
973: break;
974: }
975:
976: case d_ex_contexte :
977: {
978: if ((*s_etat_processus).langue == 'F')
979: {
980: chaine = "+++Erreur : Aucun contexte sauvegardé";
981: }
982: else
983: {
984: chaine = "+++Error : No stacked context";
985: }
986:
987: break;
988: }
989:
990: case d_ex_absence_processus_pere :
991: {
992: if ((*s_etat_processus).langue == 'F')
993: {
994: chaine = "+++Erreur : Absence de processus père";
995: }
996: else
997: {
998: chaine = "+++Error : No parent process";
999: }
1000:
1001: break;
1002: }
1003:
1004: case d_ex_creation_variable :
1005: {
1006: if ((*s_etat_processus).langue == 'F')
1007: {
1008: chaine = "+++Erreur : Création de variable impossible";
1009: }
1010: else
1011: {
1012: chaine = "+++Error : Variable initialization failed";
1013: }
1014:
1015: break;
1016: }
1017:
1018: case d_ex_fusible :
1019: {
1020: if ((*s_etat_processus).langue == 'F')
1021: {
1022: chaine = "+++Erreur : Fusible préexistant";
1023: }
1024: else
1025: {
1026: chaine = "+++Error : Fuse error";
1027: }
1028:
1029: break;
1030: }
1031:
1032: case d_ex_iswi_hors_interruption :
1033: {
1034: if ((*s_etat_processus).langue == 'F')
1035: {
1036: chaine = "+++Erreur : Aucune interruption en cours";
1037: }
1038: else
1039: {
1040: chaine = "+++Error : No current interrupt";
1041: }
1042:
1043: break;
1044: }
1045:
1046: case d_ex_daemon :
1047: {
1048: if ((*s_etat_processus).langue == 'F')
1049: {
1050: chaine = "+++Erreur : Conversion en daemon impossible";
1051: }
1052: else
1053: {
1054: chaine = "+++Error : Unable to convert to daemon";
1055: }
1056:
1057: break;
1058: }
1059:
1060: case d_ex_mutex :
1061: {
1062: if ((*s_etat_processus).langue == 'F')
1063: {
1064: chaine = "+++Erreur : Mutex non initialisé";
1065: }
1066: else
1067: {
1068: chaine = "+++Error : Uninitialized mutex";
1069: }
1070:
1071: break;
1072: }
1073:
1074: case d_ex_semaphore :
1075: {
1076: if ((*s_etat_processus).langue == 'F')
1077: {
1078: chaine = "+++Erreur : Erreur d'accès à un sémaphore";
1079: }
1080: else
1081: {
1082: chaine = "+++Error : Semaphore access error";
1083: }
1084:
1085: break;
1086: }
1087:
1088: case d_ex_variable_statique_partagee :
1089: {
1090: if ((*s_etat_processus).langue == 'F')
1091: {
1092: chaine = "+++Erreur : Variable statique partagée";
1093: }
1094: else
1095: {
1096: chaine = "+++Error : Static shared variable";
1097: }
1098:
1099: break;
1100: }
1101:
1102: case d_ex_variable_partagee :
1103: {
1104: if ((*s_etat_processus).langue == 'F')
1105: {
1106: chaine = "+++Erreur : Variable partagée";
1107: }
1108: else
1109: {
1110: chaine = "+++Error : Shared variable";
1111: }
1112:
1113: break;
1114: }
1115:
1116: case d_ex_graphique_memorise :
1117: {
1118: if ((*s_etat_processus).langue == 'F')
1119: {
1120: chaine = "+++Erreur : Données mémorisées non affichées";
1121: }
1122: else
1123: {
1124: chaine = "+++Error : Non plotted buffered data";
1125: }
1126:
1127: break;
1128: }
1129:
1130: case d_ex_absence_graphique_courant :
1131: {
1132: if ((*s_etat_processus).langue == 'F')
1133: {
1134: chaine = "+++Erreur : Aucun graphique en cours";
1135: }
1136: else
1137: {
1138: chaine = "+++Error : No current graphic";
1139: }
1140:
1141: break;
1142: }
1143:
1144: case d_ex_stop :
1145: {
1146: if ((*s_etat_processus).langue == 'F')
1147: {
1148: chaine = "+++Erreur : Masque du signal STOP";
1149: }
1150: else
1151: {
1152: chaine = "+++Error : STOP signal mask";
1153: }
1154:
1155: break;
1156: }
1157:
1158: case d_ex_matrice_non_diagonale :
1159: {
1160: if ((*s_etat_processus).langue == 'F')
1161: {
1162: chaine = "+++Erreur : Matrice non diagonale";
1163: }
1164: else
1165: {
1166: chaine = "+++Error : Non diagonal matrix";
1167: }
1168:
1169: break;
1170: }
1171:
1172: case d_ex_locales :
1173: {
1174: if ((*s_etat_processus).langue == 'F')
1175: {
1176: chaine = "+++Erreur : Variable de localisation "
1177: "indisponible";
1178: }
1179: else
1180: {
1181: chaine = "+++Error : Unavailable locale";
1182: }
1183:
1184: break;
1185: }
1186:
1187: case d_ex_representation :
1188: {
1189: if ((*s_etat_processus).langue == 'F')
1190: {
1191: chaine = "+++Erreur : Erreur de représentation";
1192: }
1193: else
1194: {
1195: chaine = "+++Error : Mapping error";
1196: }
1197:
1198: break;
1199: }
1200:
1201: case d_ex_erreur_profilage :
1202: {
1203: if ((*s_etat_processus).langue == 'F')
1204: {
1205: chaine = "+++Erreur : Pile de profilage vide";
1206: }
1207: else
1208: {
1209: chaine = "+++Error : Empty profiles stack";
1210: }
1211:
1212: break;
1213: }
1214:
1215: case d_ex_enregistrement_inexistant :
1216: {
1217: if ((*s_etat_processus).langue == 'F')
1218: {
1219: chaine = "+++Erreur : Enregistrement inexistant";
1220: }
1221: else
1222: {
1223: chaine = "+++Error : Record not found";
1224: }
1225:
1226: break;
1227: }
1228:
1229: case d_ex_clef_inexistante :
1230: {
1231: if ((*s_etat_processus).langue == 'F')
1232: {
1233: chaine = "+++Erreur : Clef inexistante";
1234: }
1235: else
1236: {
1237: chaine = "+++Error : Key not found";
1238: }
1239:
1240: break;
1241: }
1242:
1243: case d_ex_nom_implicite :
1244: {
1245: if ((*s_etat_processus).langue == 'F')
1246: {
1247: chaine = "+++Erreur : Nom implicite indéfini";
1248: }
1249: else
1250: {
1251: chaine = "+++Error : Undefined implicit name";
1252: }
1253:
1254: break;
1255: }
1256:
1257: case d_ex_version_bibliotheque :
1258: {
1259: if ((*s_etat_processus).langue == 'F')
1260: {
1261: chaine = "+++Erreur : Version de bibliothèque incompatible";
1262: }
1263: else
1264: {
1265: chaine = "+++Error : Library version mismatch";
1266: }
1267:
1268: break;
1269: }
1270:
1271: case d_ex_creation_variable_globale :
1272: {
1273: if ((*s_etat_processus).langue == 'F')
1274: {
1275: chaine = "+++Erreur : Création de variable globale "
1276: "impossible";
1277: }
1278: else
1279: {
1280: chaine = "+++Error : Cannot create global variable";
1281: }
1282:
1283: break;
1284: }
1285:
1286: case d_ex_erreur_interne_rplcas :
1287: {
1288: if ((*s_etat_processus).langue == 'F')
1289: {
1290: chaine = "+++Erreur : Erreur interne RPL/CAS";
1291: }
1292: else
1293: {
1294: chaine = "+++Error : Internal RPL/CAS error";
1295: }
1296:
1297: break;
1298: }
1299:
1300: case d_ex_fichier_corrompu :
1301: {
1302: if ((*s_etat_processus).langue == 'F')
1303: {
1304: chaine = "+++Erreur : Fichier corrompu";
1305: }
1306: else
1307: {
1308: chaine = "+++Error : Corrupted file";
1309: }
1310:
1311: break;
1312: }
1313:
1314: case d_ex_mutex_acquis_autre_thread :
1315: {
1316: if ((*s_etat_processus).langue == 'F')
1317: {
1318: chaine = "+++Erreur : Mutex acquis par un autre thread";
1319: }
1320: else
1321: {
1322: chaine = "+++Error : Mutex owned by another thread";
1323: }
1324:
1325: break;
1326: }
1327:
1328: case d_ex_expression_reguliere :
1329: {
1330: if ((*s_etat_processus).langue == 'F')
1331: {
1332: chaine = "+++Erreur : Expression régulière";
1333: }
1334: else
1335: {
1336: chaine = "+++Error : Regular expression";
1337: }
1338:
1339: break;
1340: }
1341:
1342: case d_ex_instruction_indisponible :
1343: {
1344: if ((*s_etat_processus).langue == 'F')
1345: {
1346: chaine = "+++Erreur : Instruction intrinsèque non "
1347: "disponible";
1348: }
1349: else
1350: {
1351: chaine = "+++Error : Unavailable intrinsic instruction";
1352: }
1353:
1354: break;
1355: }
1356:
1357: case d_ex_chiffrement :
1358: {
1359: if ((*s_etat_processus).langue == 'F')
1360: {
1361: chaine = "+++Erreur : Erreur dans les routines "
1362: "de chiffrement";
1363: }
1364: else
1365: {
1366: chaine = "+++Error : Cipher error";
1367: }
1368:
1369: break;
1370: }
1371:
1372: case d_ex_chiffrement_indisponible :
1373: {
1374: if ((*s_etat_processus).langue == 'F')
1375: {
1376: chaine = "+++Erreur : Algorithme de chiffrement "
1377: "indisponible";
1378: }
1379: else
1380: {
1381: chaine = "+++Error : Unavailable cipher algorithm";
1382: }
1383:
1384: break;
1385: }
1386:
1387: case d_ex_longueur_clef_chiffrement :
1388: {
1389: if ((*s_etat_processus).langue == 'F')
1390: {
1391: chaine = "+++Erreur : Longueur invalide de la clef "
1392: "de chiffrement";
1393: }
1394: else
1395: {
1396: chaine = "+++Error : Invalide key length";
1397: }
1398:
1399: break;
1400: }
1401:
1402: case d_ex_taille_message :
1403: {
1404: if ((*s_etat_processus).langue == 'F')
1405: {
1406: chaine = "+++Erreur : Message trop long";
1407: }
1408: else
1409: {
1410: chaine = "+++Error : Message size";
1411: }
1412:
1413: break;
1414: }
1415:
1416: case d_ex_type_externe_dup :
1417: {
1418: if ((*s_etat_processus).langue == 'F')
1419: {
1420: chaine = "+++Erreur : Duplication d'un type externe";
1421: }
1422: else
1423: {
1424: chaine = "+++Error : External type duplication";
1425: }
1426:
1427: break;
1428: }
1429:
1430: case d_ex_type_externe_drop :
1431: {
1432: if ((*s_etat_processus).langue == 'F')
1433: {
1434: chaine = "+++Erreur : Libération d'un type externe";
1435: }
1436: else
1437: {
1438: chaine = "+++Error : External type freeing";
1439: }
1440:
1441: break;
1442: }
1443:
1444: case d_ex_simplification :
1445: {
1446: if ((*s_etat_processus).langue == 'F')
1447: {
1448: chaine = "+++Erreur : Erreur de simplification d'une "
1449: "expression";
1450: }
1451: else
1452: {
1453: chaine = "+++Error : Simplification error";
1454: }
1455:
1456: break;
1457: }
1458:
1459: case -1 : // Fonction externe
1460: {
1461: if ((*s_etat_processus).langue == 'F')
1462: {
1463: chaine = "+++Erreur : Fonction dynamique '%s' (ligne %lld)";
1464: argument = (*s_etat_processus).instruction_derniere_erreur;
1465: erreur_fonction_externe = d_vrai;
1466: }
1467: else
1468: {
1469: chaine = "+++Error : '%s' dynamic function (line %lld)";
1470: argument = (*s_etat_processus).instruction_derniere_erreur;
1471: erreur_fonction_externe = d_vrai;
1472: }
1473:
1474: break;
1475: }
1476:
1477: default :
1478: {
1479: if ((*s_etat_processus).langue == 'F')
1480: {
1481: chaine = "+++Erreur : Erreur d'exécution";
1482: }
1483: else
1484: {
1485: chaine = "+++Error : Execution error";
1486: }
1487:
1488: break;
1489: }
1490: }
1491: }
1492: else if ((*s_etat_processus).erreur_systeme != d_es)
1493: {
1494: (*s_etat_processus).derniere_erreur_systeme =
1495: (*s_etat_processus).erreur_systeme;
1496:
1497: /*
1498: --------------------------------------------------------------------------------
1499: Erreurs dues au système et au séquenceur
1500: --------------------------------------------------------------------------------
1501: */
1502:
1503: switch((*s_etat_processus).erreur_systeme)
1504: {
1505: case d_es_allocation_memoire :
1506: {
1507: if ((*s_etat_processus).langue == 'F')
1508: {
1509: chaine = "+++Système : Erreur d'allocation mémoire";
1510: }
1511: else
1512: {
1513: chaine = "+++System : Memory allocation error";
1514: }
1515:
1516: break;
1517: }
1518:
1519: case d_es_variable_introuvable :
1520: {
1521: if ((*s_etat_processus).langue == 'F')
1522: {
1523: chaine = "+++Système : Variable non définie";
1524: }
1525: else
1526: {
1527: chaine = "+++System : Undefined variable";
1528: }
1529:
1530: break;
1531: }
1532:
1533: case d_es_pile_vide :
1534: {
1535: if ((*s_etat_processus).langue == 'F')
1536: {
1537: chaine = "+++Système : Pile système vide";
1538: }
1539: else
1540: {
1541: chaine = "+++System : Empty system stack";
1542: }
1543:
1544: break;
1545: }
1546:
1547: case d_es_pile_operationnelle_vide :
1548: {
1549: if ((*s_etat_processus).langue == 'F')
1550: {
1551: chaine = "+++Système : Pile vide";
1552: }
1553: else
1554: {
1555: chaine = "+++System : Empty stack";
1556: }
1557:
1558: break;
1559: }
1560:
1561: case d_es_end_incoherent :
1562: {
1563: if ((*s_etat_processus).langue == 'F')
1564: {
1565: chaine = "+++Système : Instruction END incohérente";
1566: }
1567: else
1568: {
1569: chaine = "+++Systeme : Incoherent END instruction";
1570: }
1571:
1572: break;
1573: }
1574:
1575: case d_es_peripherique_stdin :
1576: {
1577: if ((*s_etat_processus).langue == 'F')
1578: {
1579: chaine = "+++Système : Erreur de lecture sur stdin";
1580: }
1581: else
1582: {
1583: chaine = "+++System : Read error on stdin";
1584: }
1585:
1586: break;
1587: }
1588:
1589: case d_es_erreur_fichier :
1590: {
1591: if ((*s_etat_processus).langue == 'F')
1592: {
1593: chaine = "+++Système : Erreur d'entrée/sortie sur un"
1594: " fichier";
1595: }
1596: else
1597: {
1598: chaine = "+++System : File input/output error";
1599: }
1600:
1601: break;
1602: }
1603:
1604: case d_es_execution_bibliotheque :
1605: {
1606: if ((*s_etat_processus).langue == 'F')
1607: {
1608: chaine = "+++Système : Problème lors de l'exécution "
1609: "d'une fonction externe";
1610: }
1611: else
1612: {
1613: chaine = "+++System : Extern function execution error";
1614: }
1615:
1616: break;
1617: }
1618:
1619: case d_es_signal :
1620: {
1621: if ((*s_etat_processus).langue == 'F')
1622: {
1623: chaine = "+++Système : Problème de gestion de signaux "
1624: "POSIX";
1625: }
1626: else
1627: {
1628: chaine = "+++System : POSIX signal error";
1629: }
1630:
1631: break;
1632: }
1633:
1634: case d_es_processus :
1635: {
1636: if ((*s_etat_processus).langue == 'F')
1637: {
1638: chaine = "+++Système : Erreur dans la gestion des"
1639: " processus";
1640: }
1641: else
1642: {
1643: chaine = "+++System : Process management error";
1644: }
1645:
1646: break;
1647: }
1648:
1649: case d_es_nombre_max_descripteurs :
1650: {
1651: if ((*s_etat_processus).langue == 'F')
1652: {
1653: chaine = "+++Système : Nombre maximal de descripteurs"
1654: " de fichiers atteint";
1655: }
1656: else
1657: {
1658: chaine = "+++System : Too much file descriptors";
1659: }
1660:
1661: break;
1662: }
1663:
1664: case d_es_interruption_invalide :
1665: {
1666: if ((*s_etat_processus).langue == 'F')
1667: {
1668: chaine = "+++Système : Interruption invalide";
1669: }
1670: else
1671: {
1672: chaine = "+++System : Unavailable interrupt";
1673: }
1674:
1675: break;
1676: }
1677:
1678: case d_es_contexte :
1679: {
1680: if ((*s_etat_processus).langue == 'F')
1681: {
1682: chaine = "+++Système : Erreur dans la gestion des"
1683: " contextes";
1684: }
1685: else
1686: {
1687: chaine = "+++System : Context management error";
1688: }
1689:
1690: break;
1691: }
1692:
1693: case d_es_somme_controle :
1694: {
1695: if ((*s_etat_processus).langue == 'F')
1696: {
1697: chaine = "+++Système : Somme de contrôle invalide";
1698: }
1699: else
1700: {
1701: chaine = "+++System : Invalid hash sum";
1702: }
1703:
1704: break;
1705: }
1706:
1707: case d_es_semaphore :
1708: {
1709: if ((*s_etat_processus).langue == 'F')
1710: {
1711: chaine = "+++Système : Erreur d'accès à un sémaphore";
1712: }
1713: else
1714: {
1715: chaine = "+++System : Semaphore access error";
1716: }
1717:
1718: break;
1719: }
1720:
1721: case d_es_mutex_acquis_autre_thread :
1722: {
1723: if ((*s_etat_processus).langue == 'F')
1724: {
1725: chaine = "+++Système : Mutex acquis par un autre thread";
1726: }
1727: else
1728: {
1729: chaine = "+++System : Mutex owned by another thread";
1730: }
1731:
1732: break;
1733: }
1734:
1735: case -1 : // Fonction externe
1736: {
1737: if ((*s_etat_processus).langue == 'F')
1738: {
1739: chaine = "+++Système : Fonction dynamique '%s' "
1740: "(ligne %lld)";
1741: argument = (*s_etat_processus).instruction_derniere_erreur;
1742: erreur_fonction_externe = d_vrai;
1743: }
1744: else
1745: {
1746: chaine = "+++System : '%s' dynamic function (line %lld)";
1747: argument = (*s_etat_processus).instruction_derniere_erreur;
1748: erreur_fonction_externe = d_vrai;
1749: }
1750:
1751: break;
1752: }
1753:
1754: default :
1755: {
1756: if ((*s_etat_processus).langue == 'F')
1757: {
1758: chaine = "+++Système : Erreur interne";
1759: }
1760: else
1761: {
1762: chaine = "+++System : Internal error";
1763: }
1764:
1765: break;
1766: }
1767: }
1768: }
1769: else if ((*s_etat_processus).exception != d_ep)
1770: {
1771: (*s_etat_processus).derniere_exception =
1772: (*s_etat_processus).exception;
1773:
1774: /*
1775: --------------------------------------------------------------------------------
1776: Exceptions mathématiques
1777: --------------------------------------------------------------------------------
1778: */
1779:
1780: switch((*s_etat_processus).exception)
1781: {
1782: case d_ep_division_par_zero :
1783: {
1784: if ((*s_etat_processus).langue == 'F')
1785: {
1786: chaine = "+++Exception : Division par zéro";
1787: }
1788: else
1789: {
1790: chaine = "+++Exception : Division by zero";
1791: }
1792:
1793: break;
1794: }
1795:
1796: case d_ep_matrice_non_inversible :
1797: {
1798: if ((*s_etat_processus).langue == 'F')
1799: {
1800: chaine = "+++Exception : Matrice non inversible";
1801: }
1802: else
1803: {
1804: chaine = "+++Exception : Non inversible matrix";
1805: }
1806:
1807: break;
1808: }
1809:
1810: case d_ep_resultat_indefini :
1811: {
1812: if ((*s_etat_processus).langue == 'F')
1813: {
1814: chaine = "+++Exception : Résultat indéfini";
1815: }
1816: else
1817: {
1818: chaine = "+++Exception : Undefined result";
1819: }
1820:
1821: break;
1822: }
1823:
1824: case d_ep_underflow :
1825: {
1826: if ((*s_etat_processus).langue == 'F')
1827: {
1828: chaine = "+++Exception : Dépassement de capacité"
1829: " (underflow)";
1830: }
1831: else
1832: {
1833: chaine = "+++Exception : Underflow exception";
1834: }
1835:
1836: break;
1837: }
1838:
1839: case d_ep_overflow :
1840: {
1841: if ((*s_etat_processus).langue == 'F')
1842: {
1843: chaine = "+++Exception : Dépassement de capacité"
1844: " (overflow)";
1845: }
1846: else
1847: {
1848: chaine = "+++Exception : Overflow exception";
1849: }
1850:
1851: break;
1852: }
1853:
1854: case d_ep_domaine_definition :
1855: {
1856: if ((*s_etat_processus).langue == 'F')
1857: {
1858: chaine = "+++Exception : Domaine de définition";
1859: }
1860: else
1861: {
1862: chaine = "+++Exception : Domain exception";
1863: }
1864:
1865: break;
1866: }
1867:
1868: case d_ep_perte_precision :
1869: {
1870: if ((*s_etat_processus).langue == 'F')
1871: {
1872: chaine = "+++Exception : Perte de précision";
1873: }
1874: else
1875: {
1876: chaine = "+++Exception : Loss of precision";
1877: }
1878:
1879: break;
1880: }
1881:
1882: case d_ep_decomposition_QR :
1883: {
1884: if ((*s_etat_processus).langue == 'F')
1885: {
1886: chaine = "+++Exception : Décomposition QR impossible";
1887: }
1888: else
1889: {
1890: chaine = "+++Exception : QR decomposition failed";
1891: }
1892:
1893: break;
1894: }
1895:
1896: case d_ep_matrice_non_definie_positive :
1897: {
1898: if ((*s_etat_processus).langue == 'F')
1899: {
1900: chaine = "+++Exception : Matrice non définie positive";
1901: }
1902: else
1903: {
1904: chaine = "+++Exception : Non positive defined matrix";
1905: }
1906:
1907: break;
1908: }
1909:
1910: case d_ep_decomposition_QZ :
1911: {
1912: if ((*s_etat_processus).langue == 'F')
1913: {
1914: chaine = "+++Exception : Décomposition QZ impossible";
1915: }
1916: else
1917: {
1918: chaine = "+++Exception : QZ decomposition failed";
1919: }
1920:
1921: break;
1922: }
1923:
1924: case d_ep_decomposition_SVD :
1925: {
1926: if ((*s_etat_processus).langue == 'F')
1927: {
1928: chaine = "+++Exception : Décomposition SVD impossible";
1929: }
1930: else
1931: {
1932: chaine = "+++Exception : SVD decomposition failed";
1933: }
1934:
1935: break;
1936: }
1937:
1938: default :
1939: {
1940: if ((*s_etat_processus).langue == 'F')
1941: {
1942: chaine = "+++Exception : Exception mathématique";
1943: }
1944: else
1945: {
1946: chaine = "+++Exception : Mathematical exception";
1947: }
1948:
1949: break;
1950: }
1951: }
1952: }
1953: else if ((*s_etat_processus).erreur_compilation != d_ec)
1954: {
1955:
1956: /*
1957: --------------------------------------------------------------------------------
1958: Erreurs de compilation
1959: --------------------------------------------------------------------------------
1960: */
1961:
1962: switch((*s_etat_processus).erreur_compilation)
1963: {
1964: case d_ec_niveau_definition_negatif :
1965: {
1966: if ((*s_etat_processus).langue == 'F')
1967: {
1968: chaine = "+++Fatal : Niveau de définition négatif";
1969: }
1970: else
1971: {
1972: chaine = "+++Fatal : Negative definition level";
1973: }
1974:
1975: break;
1976: }
1977:
1978: case d_ec_nom_definition_invalide :
1979: {
1980: if ((*s_etat_processus).langue == 'F')
1981: {
1982: chaine = "+++Fatal : Nom de définition invalide";
1983: }
1984: else
1985: {
1986: chaine = "+++Fatal : Invalid definition name";
1987: }
1988:
1989: break;
1990: }
1991:
1992: case d_ec_erreur_boucle_definie :
1993: {
1994: if ((*s_etat_processus).langue == 'F')
1995: {
1996: chaine = "+++Fatal : Définition illégale "
1997: "d'une boucle définie";
1998: }
1999: else
2000: {
2001: chaine = "+++Fatal : Illegal use of a defined loop";
2002: }
2003:
2004: break;
2005: }
2006:
2007: case d_ec_erreur_instruction_end :
2008: {
2009: if ((*s_etat_processus).langue == 'F')
2010: {
2011: chaine = "+++Fatal : Erreur dans une structure terminée "
2012: "par l'instruction END";
2013: }
2014: else
2015: {
2016: chaine = "+++Fatal : Error in an END-closed structure";
2017: }
2018:
2019: break;
2020: }
2021:
2022: case d_ec_erreur_instruction_until :
2023: {
2024: if ((*s_etat_processus).langue == 'F')
2025: {
2026: chaine = "+++Fatal : Erreur dans une boucle DO/UNTIL/END";
2027: }
2028: else
2029: {
2030: chaine = "+++Fatal : Error in a DO/UNTIL/END loop";
2031: }
2032:
2033: break;
2034: }
2035:
2036: case d_ec_source_incoherent :
2037: {
2038: if ((*s_etat_processus).langue == 'F')
2039: {
2040: chaine = "+++Fatal : Définitions incohérentes";
2041: }
2042: else
2043: {
2044: chaine = "+++Fatal : Incoherent definitions";
2045: }
2046:
2047: break;
2048: }
2049:
2050: case d_ec_erreur_instruction_while :
2051: {
2052: if ((*s_etat_processus).langue == 'F')
2053: {
2054: chaine = "+++Fatal : Erreur dans une boucle WHILE/REPEAT/"
2055: "END";
2056: }
2057: else
2058: {
2059: chaine = "+++Fatal : Error in a WHILE/REPEAT/END loop";
2060: }
2061:
2062: break;
2063: }
2064:
2065: case d_ec_erreur_instruction_select :
2066: {
2067: if ((*s_etat_processus).langue == 'F')
2068: {
2069: chaine = "+++Fatal : Erreur dans une structure SELECT"
2070: "/DEFAULT/END";
2071: }
2072: else
2073: {
2074: chaine = "+++Fatal : Error in a SELECT/DEFAULT/END "
2075: "structure";
2076: }
2077:
2078: break;
2079: }
2080:
2081: case d_ec_erreur_instruction_case :
2082: {
2083: if ((*s_etat_processus).langue == 'F')
2084: {
2085: chaine = "+++Fatal : Erreur dans une structure CASE"
2086: "/THEN/END";
2087: }
2088: else
2089: {
2090: chaine = "+++Fatal : Error in a CASE/THEN/END "
2091: "structure";
2092: }
2093:
2094: break;
2095: }
2096:
2097: case d_ec_erreur_instruction_then :
2098: {
2099: if ((*s_etat_processus).langue == 'F')
2100: {
2101: chaine = "+++Fatal : Erreur dans une structure IF, "
2102: "IFERR ou CASE/THEN/END";
2103: }
2104: else
2105: {
2106: chaine = "+++Fatal : Error in a IF, IFERR or "
2107: "CASE/THEN/END structure";
2108: }
2109:
2110: break;
2111: }
2112:
2113: case d_ec_erreur_instruction_else :
2114: {
2115: if ((*s_etat_processus).langue == 'F')
2116: {
2117: chaine = "+++Fatal : Erreur dans une structure ELSE";
2118: }
2119: else
2120: {
2121: chaine = "+++Fatal : Error in a ELSE structure";
2122: }
2123:
2124: break;
2125: }
2126:
2127: case d_ec_erreur_instruction_elseif :
2128: {
2129: if ((*s_etat_processus).langue == 'F')
2130: {
2131: chaine = "+++Fatal : Erreur dans une structure ELSEIF";
2132: }
2133: else
2134: {
2135: chaine = "+++Fatal : Error in a ELSEIF structure";
2136: }
2137:
2138: break;
2139: }
2140:
2141: default :
2142: {
2143: if ((*s_etat_processus).langue == 'F')
2144: {
2145: chaine = "+++Fatal : Erreur de compilation";
2146: }
2147: else
2148: {
2149: chaine = "+++Fatal : compilation error";
2150: }
2151:
2152: break;
2153: }
2154: }
2155: }
2156: else
2157: {
2158: if ((*s_etat_processus).langue == 'F')
2159: {
2160: chaine = "";
2161: }
2162: else
2163: {
2164: chaine = "";
2165: }
2166: }
2167:
2168: if (argument == NULL)
2169: {
2170: if ((message = malloc((strlen(chaine) + 1) * sizeof(unsigned char)))
2171: == NULL)
2172: {
2173: (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
2174: return NULL;
2175: }
2176:
2177: strcpy(message, chaine);
2178: }
2179: else
2180: {
2181: if (erreur_fonction_externe == d_faux)
2182: {
2183: if ((message = malloc((strlen(chaine) + strlen(argument) - 1) *
2184: sizeof(unsigned char))) == NULL)
2185: {
2186: (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
2187: return NULL;
2188: }
2189:
2190: sprintf(message, chaine, argument);
2191: }
2192: else
2193: {
2194: if ((message = malloc((strlen(chaine) + strlen(argument) + 64
2195: - 1) * sizeof(unsigned char))) == NULL)
2196: {
2197: (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
2198: return NULL;
2199: }
2200:
2201: sprintf(message, chaine, argument,
2202: (*s_etat_processus).derniere_erreur_fonction_externe);
2203: }
2204: }
2205:
2206: return(message);
2207: }
2208:
2209: // vim: ts=4
CVSweb interface <joel.bertrand@systella.fr>