Imported from ../bash-2.05a.tar.gz.

This commit is contained in:
Jari Aalto 2001-11-13 17:56:06 +00:00
commit f73dda092b
303 changed files with 37069 additions and 28812 deletions

View file

@ -57,8 +57,9 @@ extern int errno;
#define FEVAL_LONGJMP 0x010
#define FEVAL_HISTORY 0x020
#define FEVAL_CHECKBINARY 0x040
#define FEVAL_REGFILE 0x080
extern int interactive, interactive_shell, posixly_correct;
extern int posixly_correct;
extern int indirection_level, startup_state, subshell_environment;
extern int return_catch_flag, return_catch_value;
extern int last_command_exit_value;
@ -68,7 +69,7 @@ int sourcelevel = 0;
static int
_evalfile (filename, flags)
char *filename;
const char *filename;
int flags;
{
volatile int old_interactive;
@ -77,7 +78,9 @@ _evalfile (filename, flags)
char *string;
struct stat finfo;
size_t file_size;
VFunction *errfunc;
sh_vmsg_func_t *errfunc;
USE_VAR(pflags);
fd = open (filename, O_RDONLY);
@ -97,14 +100,14 @@ file_error_and_exit:
: ((errno == ENOENT) ? 0 : -1));
}
errfunc = (VFunction *)((flags & FEVAL_BUILTIN) ? builtin_error : internal_error);
errfunc = ((flags & FEVAL_BUILTIN) ? builtin_error : internal_error);
if (S_ISDIR (finfo.st_mode))
{
(*errfunc) ("%s: is a directory", filename);
return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
}
else if (S_ISREG (finfo.st_mode) == 0)
else if ((flags & FEVAL_REGFILE) && S_ISREG (finfo.st_mode) == 0)
{
(*errfunc) ("%s: not a regular file", filename);
return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
@ -122,7 +125,7 @@ file_error_and_exit:
setmode (fd, O_TEXT);
#endif
string = xmalloc (1 + file_size);
string = (char *)xmalloc (1 + file_size);
result = read (fd, string, file_size);
string[result] = '\0';
@ -143,7 +146,7 @@ file_error_and_exit:
}
if ((flags & FEVAL_CHECKBINARY) &&
check_binary_file ((unsigned char *)string, (result > 80) ? 80 : result))
check_binary_file (string, (result > 80) ? 80 : result))
{
free (string);
(*errfunc) ("%s: cannot execute binary file", filename);
@ -207,7 +210,7 @@ file_error_and_exit:
int
maybe_execute_file (fname, force_noninteractive)
char *fname;
const char *fname;
int force_noninteractive;
{
char *filename;
@ -225,20 +228,20 @@ maybe_execute_file (fname, force_noninteractive)
#if defined (HISTORY)
int
fc_execute_file (filename)
char *filename;
const char *filename;
{
int flags;
/* We want these commands to show up in the history list if
remember_on_history is set. */
flags = FEVAL_ENOENTOK|FEVAL_HISTORY;
flags = FEVAL_ENOENTOK|FEVAL_HISTORY|FEVAL_REGFILE;
return (_evalfile (filename, flags));
}
#endif /* HISTORY */
int
source_file (filename)
char *filename;
const char *filename;
{
int flags;