Explorar o código

dselect: Use subproc_check in falliblesubprocess instead of ad-hoc code

Guillem Jover %!s(int64=15) %!d(string=hai) anos
pai
achega
ad95ee2103
Modificáronse 1 ficheiros con 3 adicións e 17 borrados
  1. 3 17
      dselect/method.cc

+ 3 - 17
dselect/method.cc

@@ -156,26 +156,12 @@ falliblesubprocess(struct command *cmd)
 
   pop_cleanup(ehflag_normaltidy);
 
-  if (WIFEXITED(status) && !WEXITSTATUS(status)) {
+  fprintf(stderr, "\n");
+  i = subproc_check(status, cmd->name, PROCWARN);
+  if (i == 0) {
     sleep(1);
     return urqr_normal;
   }
-  fprintf(stderr, "\n%s ", cmd->name);
-  if (WIFEXITED(status)) {
-    i= WEXITSTATUS(status);
-    fprintf(stderr,_("returned error exit status %d.\n"),i);
-  } else if (WIFSIGNALED(status)) {
-    i= WTERMSIG(status);
-    if (i == SIGINT) {
-      fprintf(stderr,_("was interrupted.\n"));
-    } else {
-      fprintf(stderr,_("was terminated by a signal: %s.\n"),strsignal(i));
-    }
-    if (WCOREDUMP(status))
-      fprintf(stderr,_("(It left a coredump.)\n"));
-  } else {
-    fprintf(stderr,_("failed with an unknown wait return code %d.\n"),status);
-  }
   fprintf(stderr,_("Press <enter> to continue.\n"));
   m_output(stderr, _("<standard error>"));
   do { c= fgetc(stdin); } while ((c == ERR && errno==EINTR) || ((c != '\n') && c != EOF));