mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 05:13:10 +00:00
Clean up some warnings and some unused if-related code
This commit is contained in:
parent
de5223db66
commit
ff124465fd
6 changed files with 27 additions and 71 deletions
42
builtin.cpp
42
builtin.cpp
|
@ -3380,7 +3380,7 @@ static int builtin_else( parser_t &parser, wchar_t **argv )
|
||||||
{
|
{
|
||||||
if_block = static_cast<if_block_t *>(parser.current_block);
|
if_block = static_cast<if_block_t *>(parser.current_block);
|
||||||
/* Ensure that we're past IF but not up to an ELSE */
|
/* Ensure that we're past IF but not up to an ELSE */
|
||||||
if (if_block->if_expr_evaluated && ! if_block->has_reached_else())
|
if (if_block->if_expr_evaluated && ! if_block->else_evaluated)
|
||||||
{
|
{
|
||||||
block_ok = true;
|
block_ok = true;
|
||||||
}
|
}
|
||||||
|
@ -3399,45 +3399,7 @@ static int builtin_else( parser_t &parser, wchar_t **argv )
|
||||||
/* Run the else block if the IF expression was false and so were all the ELSEIF expressions (if any) */
|
/* Run the else block if the IF expression was false and so were all the ELSEIF expressions (if any) */
|
||||||
bool run_else = ! if_block->any_branch_taken;
|
bool run_else = ! if_block->any_branch_taken;
|
||||||
if_block->skip = ! run_else;
|
if_block->skip = ! run_else;
|
||||||
if_block->if_state = if_block_t::if_state_else;
|
if_block->else_evaluated = true;
|
||||||
env_pop();
|
|
||||||
env_push(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
If everything goes ok, return status of last command to execute.
|
|
||||||
*/
|
|
||||||
return proc_get_last_status();
|
|
||||||
}
|
|
||||||
|
|
||||||
static int builtin_elseif( parser_t &parser, wchar_t **argv )
|
|
||||||
{
|
|
||||||
puts("BULITIN ELSEIF");
|
|
||||||
bool block_ok = false;
|
|
||||||
if_block_t *if_block = NULL;
|
|
||||||
if (parser.current_block != NULL && parser.current_block->type() == IF)
|
|
||||||
{
|
|
||||||
if_block = static_cast<if_block_t *>(parser.current_block);
|
|
||||||
/* Make sure that we're past IF, but not up to an ELSE */
|
|
||||||
if (if_block->if_expr_evaluated && ! if_block->has_reached_else())
|
|
||||||
{
|
|
||||||
block_ok = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ! block_ok )
|
|
||||||
{
|
|
||||||
append_format(stderr_buffer,
|
|
||||||
_( L"%ls: Not inside of 'if' block\n" ),
|
|
||||||
argv[0] );
|
|
||||||
builtin_print_help( parser, argv[0], stderr_buffer );
|
|
||||||
return STATUS_BUILTIN_ERROR;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Run this elseif if the IF expression was false, and so were all ELSEIF expressions thus far. */
|
|
||||||
bool run_elseif = ! if_block->any_branch_taken;
|
|
||||||
if_block->skip = ! run_elseif;
|
|
||||||
env_pop();
|
env_pop();
|
||||||
env_push(0);
|
env_push(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -288,7 +288,7 @@ static int update_values( wcstring_list_t &list,
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ( ind >= list.size() )
|
if ( (size_t)ind >= list.size() )
|
||||||
{
|
{
|
||||||
list.resize( ind+1 );
|
list.resize( ind+1 );
|
||||||
}
|
}
|
||||||
|
|
6
exec.cpp
6
exec.cpp
|
@ -116,7 +116,7 @@ void exec_close( int fd )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Maybe remove this from our set of open fds */
|
/* Maybe remove this from our set of open fds */
|
||||||
if (fd < open_fds.size()) {
|
if ((size_t)fd < open_fds.size()) {
|
||||||
open_fds[fd] = false;
|
open_fds[fd] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ int exec_pipe( int fd[2])
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
while( ( res=pipe( fd ) ) )
|
while ((res=pipe(fd)))
|
||||||
{
|
{
|
||||||
if( errno != EINTR )
|
if( errno != EINTR )
|
||||||
{
|
{
|
||||||
|
@ -137,7 +137,7 @@ int exec_pipe( int fd[2])
|
||||||
debug( 4, L"Created pipe using fds %d and %d", fd[0], fd[1]);
|
debug( 4, L"Created pipe using fds %d and %d", fd[0], fd[1]);
|
||||||
|
|
||||||
int max_fd = std::max(fd[0], fd[1]);
|
int max_fd = std::max(fd[0], fd[1]);
|
||||||
if (open_fds.size() <= max_fd) {
|
if (max_fd >= 0 && open_fds.size() <= (size_t)max_fd) {
|
||||||
open_fds.resize(max_fd + 1, false);
|
open_fds.resize(max_fd + 1, false);
|
||||||
}
|
}
|
||||||
open_fds.at(fd[0]) = true;
|
open_fds.at(fd[0]) = true;
|
||||||
|
|
|
@ -1314,7 +1314,7 @@ void highlight_shell( const wcstring &buff, std::vector<int> &color, size_t pos,
|
||||||
|
|
||||||
// highlight the end of the subcommand
|
// highlight the end of the subcommand
|
||||||
assert(end >= subbuff);
|
assert(end >= subbuff);
|
||||||
if ((end - subbuff) < length) {
|
if ((size_t)(end - subbuff) < length) {
|
||||||
color.at(end-subbuff)=HIGHLIGHT_OPERATOR;
|
color.at(end-subbuff)=HIGHLIGHT_OPERATOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
34
parser.cpp
34
parser.cpp
|
@ -3308,6 +3308,9 @@ int parser_t::test( const wchar_t * buff,
|
||||||
command.c_str());
|
command.c_str());
|
||||||
|
|
||||||
print_errors( *out, prefix );
|
print_errors( *out, prefix );
|
||||||
|
|
||||||
|
/* Don't complain about elseif missing a command for elseif if we already complained about elseif being out of place */
|
||||||
|
if (needs_cmd) had_cmd = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3716,12 +3719,11 @@ block_t::~block_t()
|
||||||
/* Various block constructors */
|
/* Various block constructors */
|
||||||
|
|
||||||
if_block_t::if_block_t() :
|
if_block_t::if_block_t() :
|
||||||
|
block_t(IF),
|
||||||
if_expr_evaluated(false),
|
if_expr_evaluated(false),
|
||||||
any_branch_taken(false),
|
|
||||||
is_elseif_entry(false),
|
is_elseif_entry(false),
|
||||||
else_evaluated(false),
|
any_branch_taken(false),
|
||||||
if_state(if_state_if),
|
else_evaluated(false)
|
||||||
block_t(IF)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3732,35 +3734,35 @@ event_block_t::event_block_t(const event_t *evt) :
|
||||||
}
|
}
|
||||||
|
|
||||||
function_block_t::function_block_t(process_t *p, const wcstring &n, bool shadows) :
|
function_block_t::function_block_t(process_t *p, const wcstring &n, bool shadows) :
|
||||||
|
block_t( shadows ? FUNCTION_CALL : FUNCTION_CALL_NO_SHADOW ),
|
||||||
process(p),
|
process(p),
|
||||||
name(n),
|
name(n)
|
||||||
block_t( shadows ? FUNCTION_CALL : FUNCTION_CALL_NO_SHADOW )
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
source_block_t::source_block_t(const wchar_t *src) :
|
source_block_t::source_block_t(const wchar_t *src) :
|
||||||
source_file(src),
|
block_t(SOURCE),
|
||||||
block_t(SOURCE)
|
source_file(src)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
for_block_t::for_block_t(const wcstring &var) :
|
for_block_t::for_block_t(const wcstring &var) :
|
||||||
|
block_t(FOR),
|
||||||
variable(var),
|
variable(var),
|
||||||
sequence(),
|
sequence()
|
||||||
block_t(FOR)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
while_block_t::while_block_t() :
|
while_block_t::while_block_t() :
|
||||||
status(0),
|
block_t(WHILE),
|
||||||
block_t(WHILE)
|
status(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_block_t::switch_block_t(const wcstring &sv) :
|
switch_block_t::switch_block_t(const wcstring &sv) :
|
||||||
|
block_t(SWITCH),
|
||||||
switch_taken(false),
|
switch_taken(false),
|
||||||
switch_value(sv),
|
switch_value(sv)
|
||||||
block_t(SWITCH)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3770,8 +3772,8 @@ fake_block_t::fake_block_t() :
|
||||||
}
|
}
|
||||||
|
|
||||||
function_def_block_t::function_def_block_t() :
|
function_def_block_t::function_def_block_t() :
|
||||||
function_data(),
|
block_t(FUNCTION_DEF),
|
||||||
block_t(FUNCTION_DEF)
|
function_data()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
parser.h
12
parser.h
|
@ -140,19 +140,11 @@ struct block_t
|
||||||
|
|
||||||
struct if_block_t : public block_t
|
struct if_block_t : public block_t
|
||||||
{
|
{
|
||||||
bool if_expr_evaluated; // whether the clause of the if statement has been tested
|
bool if_expr_evaluated; // whether we've evaluated the if expression
|
||||||
|
bool is_elseif_entry; // whether we're at the beginning of an active branch (IF or ELSEIF)
|
||||||
bool any_branch_taken; // whether the clause of the if statement or any elseif has been found to be true
|
bool any_branch_taken; // whether the clause of the if statement or any elseif has been found to be true
|
||||||
bool is_elseif_entry; // whether we're the first command in an elseif.
|
|
||||||
bool else_evaluated; // whether we've encountered a terminal else block
|
bool else_evaluated; // whether we've encountered a terminal else block
|
||||||
|
|
||||||
enum {
|
|
||||||
if_state_if,
|
|
||||||
if_state_elseif,
|
|
||||||
if_state_else
|
|
||||||
} if_state;
|
|
||||||
|
|
||||||
bool has_reached_else() const { return if_state == if_state_else; }
|
|
||||||
|
|
||||||
if_block_t();
|
if_block_t();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue