Diff for /rpl/src/sequenceur.c between versions 1.42 and 1.55

version 1.42, 2011/08/09 11:31:37 version 1.55, 2012/09/15 12:57:09
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.3    RPL/2 (R) version 4.1.10
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2012 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 63  sequenceur(struct_processus *s_etat_proc Line 63  sequenceur(struct_processus *s_etat_proc
     unsigned char               tampon_retour;      unsigned char               tampon_retour;
     unsigned char               *t_ligne;      unsigned char               *t_ligne;
   
     unsigned long               i;  
     unsigned long               j;  
     unsigned long               niveau;      unsigned long               niveau;
     unsigned long               position_courante;      unsigned long               position_courante;
   
       Keymap                      ancien_keymap;
       Keymap                      nouveau_keymap;
   
     (*s_etat_processus).retour_routine_evaluation = 'N';      (*s_etat_processus).retour_routine_evaluation = 'N';
   
     if ((*s_etat_processus).debug == d_vrai)      if ((*s_etat_processus).debug == d_vrai)
Line 109  sequenceur(struct_processus *s_etat_proc Line 110  sequenceur(struct_processus *s_etat_proc
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
     i = 0;  
     j = 0;  
   
     do      do
     {      {
         drapeau_appel_definition = d_faux;          drapeau_appel_definition = d_faux;
Line 182  sequenceur(struct_processus *s_etat_proc Line 180  sequenceur(struct_processus *s_etat_proc
                 flockfile(stdin);                  flockfile(stdin);
                 flockfile(stdout);                  flockfile(stdout);
   
                   ancien_keymap = rl_get_keymap();
                   nouveau_keymap = rl_copy_keymap(ancien_keymap);
                   rl_set_keymap(nouveau_keymap);
   
                   rl_bind_key(NEWLINE, readline_analyse_syntaxique);
                   rl_bind_key(RETURN, readline_analyse_syntaxique);
                   rl_bind_key(CTRL('g'), readline_effacement);
                   rl_done = 0;
   
                 ligne = readline("RPL/2> ");                  ligne = readline("RPL/2> ");
   
                   rl_set_keymap(ancien_keymap);
                   rl_free(nouveau_keymap);
   
                 funlockfile(stdin);                  funlockfile(stdin);
                 funlockfile(stdout);                  funlockfile(stdout);
   
Line 1221  sequenceur(struct_processus *s_etat_proc Line 1231  sequenceur(struct_processus *s_etat_proc
                                 (strcmp(instruction_majuscule, "FOR") == 0) ||                                  (strcmp(instruction_majuscule, "FOR") == 0) ||
                                 (strcmp(instruction_majuscule, "START") == 0) ||                                  (strcmp(instruction_majuscule, "START") == 0) ||
                                 (strcmp(instruction_majuscule, "SELECT") == 0)                                  (strcmp(instruction_majuscule, "SELECT") == 0)
                                   ||
                                   (strcmp(instruction_majuscule, "CRITICAL") == 0)
                                 || (strcmp(instruction_majuscule, "CASE") == 0)                                  || (strcmp(instruction_majuscule, "CASE") == 0)
                                 || (strcmp(instruction_majuscule, "<<") == 0))                                  || (strcmp(instruction_majuscule, "<<") == 0))
                         {                          {
Line 1262  sequenceur(struct_processus *s_etat_proc Line 1274  sequenceur(struct_processus *s_etat_proc
                             }                              }
                             else                              else
                             {                              {
                                   // Traitement spécifique pour la fin
                                   // d'une section critique
   
                                   if ((*s_etat_processus).l_base_pile_systeme
                                           == NULL)
                                   {
                                       (*s_etat_processus).erreur_systeme =
                                               d_es_processus;
                                       return(d_erreur);
                                   }
   
                                   if ((*(*s_etat_processus).l_base_pile_systeme)
                                           .type_cloture == 'Q')
                                   {
                                       if (pthread_mutex_unlock(
                                               &mutex_sections_critiques) != 0)
                                       {
                                           (*s_etat_processus).erreur_systeme =
                                                   d_es_processus;
                                           return(d_erreur);
                                       }
   
                                       (*s_etat_processus).sections_critiques--;
                                   }
   
                                 depilement_pile_systeme(s_etat_processus);                                  depilement_pile_systeme(s_etat_processus);
   
                                 if ((*s_etat_processus).erreur_systeme != d_es)                                  if ((*s_etat_processus).erreur_systeme != d_es)
Line 1304  sequenceur(struct_processus *s_etat_proc Line 1341  sequenceur(struct_processus *s_etat_proc
                             (strcmp(instruction_majuscule, "FOR") == 0) ||                              (strcmp(instruction_majuscule, "FOR") == 0) ||
                             (strcmp(instruction_majuscule, "START") == 0) ||                              (strcmp(instruction_majuscule, "START") == 0) ||
                             (strcmp(instruction_majuscule, "SELECT") == 0)                              (strcmp(instruction_majuscule, "SELECT") == 0)
                               || (strcmp(instruction_majuscule, "CRITICAL") == 0)
                             || (strcmp(instruction_majuscule, "CASE") == 0)                              || (strcmp(instruction_majuscule, "CASE") == 0)
                             || (strcmp(instruction_majuscule, "<<") == 0))                              || (strcmp(instruction_majuscule, "<<") == 0))
                     {                      {
Line 1398  sequenceur(struct_processus *s_etat_proc Line 1436  sequenceur(struct_processus *s_etat_proc
   
         if ((*s_etat_processus).var_volatile_processus_pere == 0)          if ((*s_etat_processus).var_volatile_processus_pere == 0)
         {          {
             kill((*s_etat_processus).pid_processus_pere, SIGALRM);              envoi_signal_processus((*s_etat_processus).pid_processus_pere,
                       rpl_sigalrm);
         }          }
         else          else
         {          {

Removed from v.1.42  
changed lines
  Added in v.1.55


CVSweb interface <joel.bertrand@systella.fr>