Use the new swapvp function
Dimitrie O. Paun
dimi at intelliware.ca
Tue Apr 1 16:36:30 CST 2003
As promissed...
Any other places that may need it?
ChangeLog
Make use of the new swapvp function in wine{gcc,wrap}.
Index: tools/winegcc.c
===================================================================
RCS file: /var/cvs/wine/tools/winegcc.c,v
retrieving revision 1.14
diff -u -r1.14 winegcc.c
--- tools/winegcc.c 1 Apr 2003 00:12:02 -0000 1.14
+++ tools/winegcc.c 1 Apr 2003 22:31:44 -0000
@@ -27,13 +27,7 @@
#include <stdarg.h>
#include <string.h>
#include <errno.h>
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
static char **tmp_files;
static int nb_tmp_files;
@@ -75,29 +69,17 @@
void spawn(char *const argv[])
{
-#ifdef HAVE__SPAWNVP
- if (!_spawnvp( _P_WAIT, argv[0], argv)) return;
-#else
- int pid, status, wret, i;
-
+ int i, status;
+
if (verbose)
{
for(i = 0; argv[i]; i++) printf("%s ", argv[i]);
printf("\n");
}
+ if (!(status = spawnvp( _P_WAIT, argv[0], argv))) return;
- if ((pid = fork()) == 0) execvp(argv[0], argv);
- else if (pid > 0)
- {
- while (pid != (wret = waitpid(pid, &status, 0)))
- if (wret == -1 && errno != EINTR) break;
-
- if (pid == wret && WIFEXITED(status) && WEXITSTATUS(status) == 0) return;
- error("%s failed.", argv[0]);
- }
-#endif /* HAVE__SPAWNVP */
-
- perror("Error:");
+ if (status > 0) error("%s failed.", argv[0]);
+ else perror("Error:");
exit(3);
}
Index: tools/winewrap.c
===================================================================
RCS file: /var/cvs/wine/tools/winewrap.c,v
retrieving revision 1.13
diff -u -r1.13 winewrap.c
--- tools/winewrap.c 1 Apr 2003 00:12:02 -0000 1.13
+++ tools/winewrap.c 1 Apr 2003 22:31:54 -0000
@@ -27,13 +27,7 @@
#include <stdarg.h>
#include <stdlib.h>
#include <errno.h>
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
#ifndef WINEDLLS
#define WINEDLLS "/usr/local/lib/wine"
@@ -296,29 +290,17 @@
void spawn(char *const argv[])
{
-#ifdef HAVE__SPAWNVP
- if (!_spawnvp( _P_WAIT, argv[0], argv)) return;
-#else
- int pid, status, wret, i;
-
+ int i, status;
+
if (verbose)
{
for(i = 0; argv[i]; i++) printf("%s ", argv[i]);
printf("\n");
}
+ if (!(status = spawnvp( _P_WAIT, argv[0], argv))) return;
- if ((pid = fork()) == 0) execvp(argv[0], argv);
- else if (pid > 0)
- {
- while (pid != (wret = waitpid(pid, &status, 0)))
- if (wret == -1 && errno != EINTR) break;
-
- if (pid == wret && WIFEXITED(status) && WEXITSTATUS(status) == 0) return;
- error("%s failed.", argv[0]);
- }
-#endif /* HAVE__SPAWNVP */
-
- perror("Error:");
+ if (status > 0) error("%s failed.", argv[0]);
+ else perror("Error:");
exit(3);
}
--
Dimi.
More information about the wine-patches
mailing list