version 1.20, 2013/09/04 10:03:19
|
version 1.39, 2018/06/01 09:57:28
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.15 |
RPL/2 (R) version 4.1.29 |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
Copyright (C) 1989-2018 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 74 instruction_restart(struct_processus *s_
|
Line 74 instruction_restart(struct_processus *s_
|
} |
} |
|
|
envoi_signal_processus((*s_etat_processus).pid_processus_pere, |
envoi_signal_processus((*s_etat_processus).pid_processus_pere, |
rpl_sigabort); |
rpl_sigabort, d_faux); |
(*s_etat_processus).requete_arret = 'Y'; |
(*s_etat_processus).requete_arret = 'Y'; |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
Line 112 instruction_restart(struct_processus *s_
|
Line 112 instruction_restart(struct_processus *s_
|
void |
void |
instruction_regex(struct_processus *s_etat_processus) |
instruction_regex(struct_processus *s_etat_processus) |
{ |
{ |
|
integer8 longueur; |
|
|
regex_t expression; |
regex_t expression; |
|
|
struct_liste_chainee *l_element_courant_ecriture; |
struct_liste_chainee *l_element_courant_ecriture; |
Line 121 instruction_regex(struct_processus *s_et
|
Line 123 instruction_regex(struct_processus *s_et
|
struct_objet *s_objet_argument_2; |
struct_objet *s_objet_argument_2; |
struct_objet *s_objet_resultat; |
struct_objet *s_objet_resultat; |
|
|
|
unsigned char *exp; |
|
|
(*s_etat_processus).erreur_execution = d_ex; |
(*s_etat_processus).erreur_execution = d_ex; |
|
|
if ((*s_etat_processus).affichage_arguments == 'Y') |
if ((*s_etat_processus).affichage_arguments == 'Y') |
Line 181 instruction_regex(struct_processus *s_et
|
Line 185 instruction_regex(struct_processus *s_et
|
{ |
{ |
// Renvoie 0 ou -1 |
// Renvoie 0 ou -1 |
|
|
if (regcomp(&expression, (const char *) (*s_objet_argument_1).objet, |
if ((exp = formateur_flux(s_etat_processus, (*s_objet_argument_1).objet, |
|
&longueur)) == NULL) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
|
return; |
|
} |
|
|
|
if (regcomp(&expression, (const char *) exp, |
REG_EXTENDED | REG_NOSUB) != 0) |
REG_EXTENDED | REG_NOSUB) != 0) |
{ |
{ |
liberation(s_etat_processus, s_objet_argument_1); |
liberation(s_etat_processus, s_objet_argument_1); |
Line 208 instruction_regex(struct_processus *s_et
|
Line 219 instruction_regex(struct_processus *s_et
|
} |
} |
|
|
regfree(&expression); |
regfree(&expression); |
|
free(exp); |
} |
} |
else if (((*s_objet_argument_1).type == CHN) && |
else if (((*s_objet_argument_1).type == CHN) && |
((*s_objet_argument_2).type == LST)) |
((*s_objet_argument_2).type == LST)) |
{ |
{ |
// Renvoie une liste de chaînes qui correspondent |
// Renvoie une liste de chaînes qui correspondent |
|
|
if (regcomp(&expression, (const char *) (*s_objet_argument_1).objet, |
if ((exp = formateur_flux(s_etat_processus, (*s_objet_argument_1).objet, |
|
&longueur)) == NULL) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
|
return; |
|
} |
|
|
|
if (regcomp(&expression, (const char *) exp, |
REG_EXTENDED | REG_NOSUB) != 0) |
REG_EXTENDED | REG_NOSUB) != 0) |
{ |
{ |
liberation(s_etat_processus, s_objet_argument_1); |
liberation(s_etat_processus, s_objet_argument_1); |
Line 306 instruction_regex(struct_processus *s_et
|
Line 325 instruction_regex(struct_processus *s_et
|
} |
} |
|
|
regfree(&expression); |
regfree(&expression); |
|
free(exp); |
} |
} |
else |
else |
{ |
{ |