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