317 |
} |
} |
318 |
|
|
319 |
/* fin d'un programme externe, on defini une erreur si il ne s'est pas terminé correctement */ |
/* fin d'un programme externe, on defini une erreur si il ne s'est pas terminé correctement */ |
320 |
void exit_prog(gint Apid, GError **Aerror, gchar *Adefmsg) |
void exit_prog(gint Apid, gboolean Aabort, GError **Aerror, gchar *Adefmsg) |
321 |
{ |
{ |
322 |
gint Lcmdstatus = 0; |
gint Lcmdstatus = 0; |
323 |
|
|
324 |
kill(Apid, SIGTERM); |
if (Aabort) kill(Apid, SIGTERM); |
325 |
waitpid(Apid, &Lcmdstatus, 0); |
waitpid(Apid, &Lcmdstatus, 0); |
|
|
|
326 |
if ((WIFEXITED(Lcmdstatus) && WEXITSTATUS(Lcmdstatus)!=0) || (!(WIFEXITED(Lcmdstatus)))) { |
if ((WIFEXITED(Lcmdstatus) && WEXITSTATUS(Lcmdstatus)!=0) || (!(WIFEXITED(Lcmdstatus)))) { |
327 |
|
_DEB("oui une erreur\n"); |
328 |
if (Aerror && !*Aerror) { |
if (Aerror && !*Aerror) { |
329 |
g_set_error(Aerror, GRAVEMAN_ERROR, _ERR_UNKNOWN_ERROR, Adefmsg ? Adefmsg : _("Operation failed")); |
g_set_error(Aerror, GRAVEMAN_ERROR, _ERR_UNKNOWN_ERROR, Adefmsg ? Adefmsg : _("Operation failed")); |
330 |
} |
} |