]> git.sur5r.net Git - cc65/commitdiff
Renamed spawn.c -> spawn-unix.c
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 22 May 2002 08:30:06 +0000 (08:30 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 22 May 2002 08:30:06 +0000 (08:30 +0000)
Added spawn-amiga.c

git-svn-id: svn://svn.cc65.org/cc65/trunk@1282 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cl65/make/gcc.mak
src/cl65/spawn-amiga.c [new file with mode: 0644]
src/cl65/spawn-unix.c [new file with mode: 0644]
src/cl65/spawn.c [deleted file]

index 111e076834de8c5ea308eb7c51a9a4c428fe3796..96f9a2b912174f4dc4bfc253c84f46a136c28ffd 100644 (file)
@@ -13,7 +13,7 @@ LDFLAGS=
 OBJS = error.o         \
        global.o        \
        main.o          \
-       spawn.o
+       spawn-unix.o
 
 LIBS = $(COMMON)/common.a
 
diff --git a/src/cl65/spawn-amiga.c b/src/cl65/spawn-amiga.c
new file mode 100644 (file)
index 0000000..841b953
--- /dev/null
@@ -0,0 +1,81 @@
+/*****************************************************************************/
+/*                                                                           */
+/*                                 spawn-amiga.c                             */
+/*                                                                           */
+/*                Execute other external programs (Amiga version)            */
+/*                                                                           */
+/*                                                                           */
+/*                                                                           */
+/* (C) 2002     Wolfgang Hosemann                                            */
+/* EMail:       whose@t-online.de                                            */
+/*                                                                           */
+/*                                                                           */
+/* This software is provided 'as-is', without any expressed or implied       */
+/* warranty.  In no event will the authors be held liable for any damages    */
+/* arising from the use of this software.                                    */
+/*                                                                           */
+/* Permission is granted to anyone to use this software for any purpose,     */
+/* including commercial applications, and to alter it and redistribute it    */
+/* freely, subject to the following restrictions:                            */
+/*                                                                           */
+/* 1. The origin of this software must not be misrepresented; you must not   */
+/*    claim that you wrote the original software. If you use this software   */
+/*    in a product, an acknowledgment in the product documentation would be  */
+/*    appreciated but is not required.                                       */
+/* 2. Altered source versions must be plainly marked as such, and must not   */
+/*    be misrepresented as being the original software.                      */
+/* 3. This notice may not be removed or altered from any source              */
+/*    distribution.                                                          */
+/*                                                                           */
+/*****************************************************************************/
+
+
+
+#include <stdio.h>
+#include <clib/dos_protos.h>
+
+/* common */
+#include "attrib.h"
+#include "strbuf.h"
+
+
+
+/*****************************************************************************/
+/*                                  Code                                    */
+/*****************************************************************************/
+
+
+
+int spawnvp (int Mode attribute ((unused)),
+             const char* File attribute ((unused)),
+             char* const argv [])
+/* Execute the given program searching and wait til it terminates. The Mode
+ * argument is ignored (compatibility only). The result of the function is
+ * the return code of the program. The function will terminate the program
+ * on errors.
+ */
+{
+    int Status;
+    StrBuf Command = AUTO_STRBUF_INITIALIZER;
+
+    /* Build the command line */
+    while (*argv) {
+        SB_AppendStr (&Command, *argv++);
+        SB_AppendChar (&Command, ' ');
+    }
+
+    /* Terminate the command line */
+    SB_Terminate (&Command);
+
+    /* Invoke the shell to execute the command */
+    Status = System (SB->GetConstBuf (&Command), TAG_END)
+
+    /* Free the string buf data */
+    DoneStrBuf (&Command);
+
+    /* Return the result */
+    return Status;
+}
+
+
+
diff --git a/src/cl65/spawn-unix.c b/src/cl65/spawn-unix.c
new file mode 100644 (file)
index 0000000..be25e66
--- /dev/null
@@ -0,0 +1,99 @@
+/*****************************************************************************/
+/*                                                                           */
+/*                               spawn.c                                    */
+/*                                                                           */
+/*                Execute other external programs (Unix version)             */
+/*                                                                           */
+/*                                                                           */
+/*                                                                           */
+/* (C) 1999     Ullrich von Bassewitz                                        */
+/*              Wacholderweg 14                                              */
+/*              D-70597 Stuttgart                                            */
+/* EMail:       uz@musoftware.de                                             */
+/*                                                                           */
+/*                                                                           */
+/* This software is provided 'as-is', without any expressed or implied       */
+/* warranty.  In no event will the authors be held liable for any damages    */
+/* arising from the use of this software.                                    */
+/*                                                                           */
+/* Permission is granted to anyone to use this software for any purpose,     */
+/* including commercial applications, and to alter it and redistribute it    */
+/* freely, subject to the following restrictions:                            */
+/*                                                                           */
+/* 1. The origin of this software must not be misrepresented; you must not   */
+/*    claim that you wrote the original software. If you use this software   */
+/*    in a product, an acknowledgment in the product documentation would be  */
+/*    appreciated but is not required.                                       */
+/* 2. Altered source versions must be plainly marked as such, and must not   */
+/*    be misrepresented as being the original software.                      */
+/* 3. This notice may not be removed or altered from any source              */
+/*    distribution.                                                          */
+/*                                                                           */
+/*****************************************************************************/
+
+
+
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+/* common */
+#include "attrib.h"
+
+/* cl65 */
+#include "error.h"
+
+
+
+/*****************************************************************************/
+/*                                  Code                                    */
+/*****************************************************************************/
+
+
+
+int spawnvp (int Mode attribute ((unused)), const char* File, char* const argv [])
+/* Execute the given program searching and wait til it terminates. The Mode
+ * argument is ignored (compatibility only). The result of the function is
+ * the return code of the program. The function will terminate the program
+ * on errors.
+ */
+{
+    int Status = 0;
+
+    /* Fork */
+    int pid = fork ();
+    if (pid < 0) {
+
+       /* Error forking */
+       Error ("Cannot fork: %s", strerror (errno));
+
+    } else if (pid == 0) {
+
+               /* The son - exec the program */
+       if (execvp (File, argv) < 0) {
+           Error ("Cannot exec `%s': %s", File, strerror (errno));
+       }
+
+    } else {
+
+       /* The father: Wait for the subprocess to terminate */
+       if (waitpid (pid, &Status, 0) < 0) {
+           Error ("Failure waiting for subprocess: %s", strerror (errno));
+       }
+
+       /* Examine the child status */
+       if (!WIFEXITED (Status)) {
+           Error ("Subprocess `%s' aborted by signal %d", File, WTERMSIG (Status));
+       }
+    }
+
+    /* Only the father goes here, we place a return here regardless of that
+     * to avoid compiler warnings.
+     */
+    return WEXITSTATUS (Status);
+}
+
+
+
diff --git a/src/cl65/spawn.c b/src/cl65/spawn.c
deleted file mode 100644 (file)
index 19e0aeb..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*****************************************************************************/
-/*                                                                           */
-/*                               spawn.c                                    */
-/*                                                                           */
-/*                   Execute other external programs                        */
-/*                                                                           */
-/*                                                                           */
-/*                                                                           */
-/* (C) 1999     Ullrich von Bassewitz                                        */
-/*              Wacholderweg 14                                              */
-/*              D-70597 Stuttgart                                            */
-/* EMail:       uz@musoftware.de                                             */
-/*                                                                           */
-/*                                                                           */
-/* This software is provided 'as-is', without any expressed or implied       */
-/* warranty.  In no event will the authors be held liable for any damages    */
-/* arising from the use of this software.                                    */
-/*                                                                           */
-/* Permission is granted to anyone to use this software for any purpose,     */
-/* including commercial applications, and to alter it and redistribute it    */
-/* freely, subject to the following restrictions:                            */
-/*                                                                           */
-/* 1. The origin of this software must not be misrepresented; you must not   */
-/*    claim that you wrote the original software. If you use this software   */
-/*    in a product, an acknowledgment in the product documentation would be  */
-/*    appreciated but is not required.                                       */
-/* 2. Altered source versions must be plainly marked as such, and must not   */
-/*    be misrepresented as being the original software.                      */
-/* 3. This notice may not be removed or altered from any source              */
-/*    distribution.                                                          */
-/*                                                                           */
-/*****************************************************************************/
-
-
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-         
-/* common */
-#include "attrib.h"
-
-/* cl65 */
-#include "error.h"
-
-
-
-/*****************************************************************************/
-/*                                  Code                                    */
-/*****************************************************************************/
-
-
-
-int spawnvp (int Mode attribute ((unused)), const char* File, char* const argv [])
-/* Execute the given program searching and wait til it terminates. The Mode
- * argument is ignored (compatibility only). The result of the function is
- * the return code of the program. The function will terminate the program
- * on errors.
- */
-{
-    int Status = 0;
-
-    /* Fork */
-    int pid = fork ();
-    if (pid < 0) {
-
-       /* Error forking */
-       Error ("Cannot fork: %s", strerror (errno));
-
-    } else if (pid == 0) {
-
-               /* The son - exec the program */
-       if (execvp (File, argv) < 0) {
-           Error ("Cannot exec `%s': %s", File, strerror (errno));
-       }
-
-    } else {
-
-       /* The father: Wait for the subprocess to terminate */
-       if (waitpid (pid, &Status, 0) < 0) {
-           Error ("Failure waiting for subprocess: %s", strerror (errno));
-       }
-
-       /* Examine the child status */
-       if (!WIFEXITED (Status)) {
-           Error ("Subprocess `%s' aborted by signal %d", File, WTERMSIG (Status));
-       }
-    }
-
-    /* Only the father goes here, we place a return here regardless of that
-     * to avoid compiler warnings.
-     */
-    return WEXITSTATUS (Status);
-}
-
-
-