Sat Feb 10 04:18:48 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

* posix/execvp.c: If execv fails with ENOEXEC, run the shell on
	the file.

Fri Feb  9 11:46:45 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* time/Makefile (CFLAGS-zdump.c, CFLAGS-zic.c, CFLAGS-ialloc.c,
	CFLAGS-scheck.c): Use -DNOID instead of -Wno-unused.

	* hurd/Makefile (user-interfaces): Added hurd/tioctl.
This commit is contained in:
Roland McGrath 1996-02-10 10:00:27 +00:00
parent 56f778c958
commit 6a032d8158
6 changed files with 72 additions and 15 deletions

View File

@ -1,3 +1,15 @@
Sat Feb 10 04:18:48 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* posix/execvp.c: If execv fails with ENOEXEC, run the shell on
the file.
Fri Feb 9 11:46:45 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* time/Makefile (CFLAGS-zdump.c, CFLAGS-zic.c, CFLAGS-ialloc.c,
CFLAGS-scheck.c): Use -DNOID instead of -Wno-unused.
* hurd/Makefile (user-interfaces): Added hurd/tioctl.
Thu Feb 8 18:55:27 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/hurdioctl.c (tiocsctty): Set the terminal's pgrp to our own.

5
db/.cvsignore Normal file
View File

@ -0,0 +1,5 @@
*.gz *.Z *.tar *.tgz
=*
TODO COPYING* AUTHORS copyr-* copying.*
glibc-*
distinfo

View File

@ -37,7 +37,7 @@ user-interfaces := $(addprefix hurd/,\
process process_request \
msg msg_reply msg_request \
exec exec_startup crash interrupt \
fs fsys io term socket ifsock)
fs fsys io term tioctl socket ifsock)
server-interfaces := hurd/msg
routines = hurdstartup hurdinit \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <paths.h>
/* Execute FILE, searching in the `PATH' environment variable if it contains
no slashes, with arguments ARGV and environment from `environ'. */
@ -29,9 +30,34 @@ execvp (file, argv)
const char *file;
char *const argv[];
{
void execute (const char *file, char *const argv[])
{
execv (file, argv);
if (errno == ENOEXEC)
{
/* The file is accessible but it is not an executable file.
Invoke the shell to interpret it as a script. */
int argc;
char **new_argv;
/* Count the arguments. */
for (argc = 0; argv[argc++];);
/* Construct an argument list for the shell. */
new_argv = __alloca ((argc + 1) * sizeof (char *));
for (new_argv[0] = _PATH_BSHELL; argc > 0; --argc)
new_argv[argc] = argv[argc - 1];
/* Execute the shell. */
execv (new_argv[0], new_argv);
}
}
if (strchr (file, '/') != NULL)
/* Don't search when it contains a slash. */
return execv (file, argv);
execute (file, argv);
else
{
char *path, *p, *name;
@ -72,14 +98,23 @@ execvp (file, argv)
}
/* Try to execute this name. If it works, execv will not return. */
execv (name, argv);
if (errno != ENOENT && errno != EACCES)
/* Those errors indicate the file is missing or not executable
by us, in which case we want to just try the next path
directory. Some other error means we found an executable
file, but something went wrong executing it; return the
error to our caller. */
return -1;
execute (name, argv);
switch (errno)
{
case ENOENT:
case EACCES:
/* Those errors indicate the file is missing or not executable
by us, in which case we want to just try the next path
directory. */
break;
default:
/* Some other error means we found an executable file, but
something went wrong executing it; return the error to our
caller. */
return -1;
}
}
while (*p++ != '\0');
}

View File

@ -125,7 +125,7 @@ tz-cc = $(COMPILE.c) $(+gcc-nowarn) \
-DTZDEFRULES='"$(posixrules-file)"' \
$< $(OUTPUT_OPTION)
CFLAGS-zdump.c = -Wno-strict-prototypes
CFLAGS-zic.c = -Wno-strict-prototypes
CFLAGS-ialloc.c = -Wno-strict-prototypes -Wno-unused
CFLAGS-scheck.c = -Wno-strict-prototypes -Wno-unused
CFLAGS-zdump.c = -Wno-strict-prototypes -DNOID
CFLAGS-zic.c = -Wno-strict-prototypes -DNOID
CFLAGS-ialloc.c = -Wno-strict-prototypes -DNOID
CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID

5
wcsmbs/.cvsignore Normal file
View File

@ -0,0 +1,5 @@
*.gz *.Z *.tar *.tgz
=*
TODO COPYING* AUTHORS copyr-* copying.*
glibc-*
distinfo