aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-05-25 02:25:35 +0000
committerRichard Stallman <rms@gnu.org>1992-05-25 02:25:35 +0000
commit14be024e77ab8d99fde0bcd4b69bdeee55be2624 (patch)
tree52d3ce128553af190080156a0dd6bbce8cfee2ed /gcc
parente85ddd991a921f3d0ef10ee2922ad460e04abe01 (diff)
downloadgcc-14be024e77ab8d99fde0bcd4b69bdeee55be2624.zip
gcc-14be024e77ab8d99fde0bcd4b69bdeee55be2624.tar.gz
gcc-14be024e77ab8d99fde0bcd4b69bdeee55be2624.tar.bz2
*** empty log message ***
From-SVN: r1076
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gcc.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 866d75e..59db147 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1368,6 +1368,7 @@ static int last_pipe_input;
NOT_LAST is nonzero if this is not the last subcommand
(i.e. its output should be piped to the next one.) */
+#ifndef OS2
#ifdef __MSDOS__
/* Declare these to avoid compilation error. They won't be called. */
@@ -1375,9 +1376,9 @@ int execv(const char *a, const char **b){}
int execvp(const char *a, const char **b){}
static int
-pexecute (func, program, argv, not_last)
+pexecute (search_flag, program, argv, not_last)
+ int search_flag;
char *program;
- int (*func)();
char *argv[];
int not_last;
{
@@ -1413,12 +1414,13 @@ pexecute (func, program, argv, not_last)
#else /* not __MSDOS__ */
static int
-pexecute (func, program, argv, not_last)
+pexecute (search_flag, program, argv, not_last)
+ int search_flag;
char *program;
- int (*func)();
char *argv[];
int not_last;
{
+ int (*func)() = (search_flag ? execv : execvp);
int pid;
int pdes[2];
int input_desc = last_pipe_input;
@@ -1500,6 +1502,18 @@ pexecute (func, program, argv, not_last)
}
#endif /* not __MSDOS__ */
+#else /* not OS2 */
+
+static int
+pexecute (search_flag, program, argv, not_last)
+ int search_flag;
+ char *program;
+ char *argv[];
+ int not_last;
+{
+ return (search_flag ? spawnv : spawnvp) (1, program, argv);
+}
+#endif /* not OS2 */
/* Execute the command specified by the arguments on the current line of spec.
When using pipes, this includes several piped-together commands
@@ -1594,7 +1608,7 @@ execute ()
{
char *string = commands[i].argv[0];
- commands[i].pid = pexecute ((string != commands[i].prog ? execv : execvp),
+ commands[i].pid = pexecute (string != commands[i].prog,
string, commands[i].argv,
i + 1 < n_commands);