--- rpl/src/instructions_h1.c 2011/06/27 09:04:57 1.27 +++ rpl/src/instructions_h1.c 2018/05/30 09:27:35 1.65 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.0 - Copyright (C) 1989-2011 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.29 + Copyright (C) 1989-2018 Dr. BERTRAND Joël This file is part of RPL/2. @@ -325,8 +325,8 @@ instruction_hms_plus(struct_processus *s return; } - (*((real8 *) (*s_objet_resultat).objet)) = (*((integer8 *) - (*s_objet_argument_2).objet)) + (*((real8 *) + (*((real8 *) (*s_objet_resultat).objet)) = ((real8) (*((integer8 *) + (*s_objet_argument_2).objet))) + (*((real8 *) (*s_objet_argument_1).objet)); conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); @@ -344,8 +344,8 @@ instruction_hms_plus(struct_processus *s } (*((real8 *) (*s_objet_resultat).objet)) = (*((real8 *) - (*s_objet_argument_2).objet)) + (*((integer8 *) - (*s_objet_argument_1).objet)); + (*s_objet_argument_2).objet)) + ((real8) (*((integer8 *) + (*s_objet_argument_1).objet))); conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); } @@ -480,11 +480,8 @@ instruction_hms_moins(struct_processus * if (((*s_objet_argument_1).type == INT) && ((*s_objet_argument_2).type == INT)) { - (*((integer8 *) (*s_objet_argument_1).objet)) = - -(*((integer8 *) (*s_objet_argument_1).objet)); - - if (depassement_addition((integer8 *) (*s_objet_argument_1).objet, - (integer8 *) (*s_objet_argument_2).objet, &tampon) == + if (depassement_soustraction((integer8 *) (*s_objet_argument_2).objet, + (integer8 *) (*s_objet_argument_1).objet, &tampon) == d_absence_erreur) { if ((s_objet_resultat = allocation(s_etat_processus, INT)) @@ -506,8 +503,8 @@ instruction_hms_moins(struct_processus * } (*((real8 *) (*s_objet_resultat).objet)) = ((real8) - (*((integer8 *) (*s_objet_argument_1).objet))) + ((real8) - (*((integer8 *) (*s_objet_argument_2).objet))); + (*((integer8 *) (*s_objet_argument_2).objet))) - ((real8) + (*((integer8 *) (*s_objet_argument_1).objet))); } } @@ -529,8 +526,8 @@ instruction_hms_moins(struct_processus * return; } - (*((real8 *) (*s_objet_resultat).objet)) = (*((integer8 *) - (*s_objet_argument_2).objet)) - (*((real8 *) + (*((real8 *) (*s_objet_resultat).objet)) = ((real8) (*((integer8 *) + (*s_objet_argument_2).objet))) - (*((real8 *) (*s_objet_argument_1).objet)); conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); @@ -548,8 +545,8 @@ instruction_hms_moins(struct_processus * } (*((real8 *) (*s_objet_resultat).objet)) = (*((real8 *) - (*s_objet_argument_2).objet)) - (*((integer8 *) - (*s_objet_argument_1).objet)); + (*s_objet_argument_2).objet)) - ((real8) (*((integer8 *) + (*s_objet_argument_1).objet))); conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); } @@ -885,9 +882,11 @@ instruction_help(struct_processus *s_eta if ((*s_etat_processus).langue == 'F') { printf("Processus asynchrones :\n"); - printf(" CTRL+C : interruption de l'instruction en cours ;\n"); - printf(" CTRL+D : en mode interactif, provque un ABORT ;\n"); - printf(" CTRL+Z : en cours d'exécution, provoque un HALT " + printf(" CTRL+c : interruption de l'instruction en cours ;\n"); + printf(" CTRL+d : en mode interactif, provoque un ABORT\n"); + printf(" CTRL+g : en mode interactif, provoque l'annulation de la " + "commande en cours ;\n"); + printf(" CTRL+z : en cours d'exécution, provoque un HALT " "asynchrone.\n\n"); printf("Drapeaux (valeurs par défaut) :\n"); @@ -920,9 +919,12 @@ instruction_help(struct_processus *s_eta else { printf("Hot keys :\n"); - printf(" CTRL+C : interruption ;\n"); - printf(" CTRL+D : ABORT (in interactive mode only) ;\n"); - printf(" CTRL+Z : HALT.\n\n"); + printf(" CTRL+c : interruption ;\n"); + printf(" CTRL+d : in interactive mode only sends ABORT on empty " + "command line ;\n"); + printf(" CTRL+g : in interactive mode only, nullifies current " + "command line ;\n"); + printf(" CTRL+z : HALT.\n\n"); printf("Flags (default values) :\n"); printf(" 1 to 30 : user flags (cleared)\n");