Imported from ../bash-2.05a.tar.gz.
This commit is contained in:
parent
28ef6c316f
commit
f73dda092b
303 changed files with 37069 additions and 28812 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue