mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-26 04:43: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);
|
||||
/* 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;
|
||||
}
|
||||
|
@ -3399,7 +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) */
|
||||
bool run_else = ! if_block->any_branch_taken;
|
||||
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);
|
||||
}
|
||||
|
@ -3410,44 +3410,6 @@ static int builtin_else( parser_t &parser, wchar_t **argv )
|
|||
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_push(0);
|
||||
}
|
||||
|
||||
/*
|
||||
If everything goes ok, return status of last command to execute.
|
||||
*/
|
||||
return proc_get_last_status();
|
||||
}
|
||||
|
||||
/**
|
||||
This function handles both the 'continue' and the 'break' builtins
|
||||
that are used for loop control.
|
||||
|
|
|
@ -288,7 +288,7 @@ static int update_values( wcstring_list_t &list,
|
|||
{
|
||||
return 1;
|
||||
}
|
||||
if ( ind >= list.size() )
|
||||
if ( (size_t)ind >= list.size() )
|
||||
{
|
||||
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 */
|
||||
if (fd < open_fds.size()) {
|
||||
if ((size_t)fd < open_fds.size()) {
|
||||
open_fds[fd] = false;
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +125,7 @@ int exec_pipe( int fd[2])
|
|||
{
|
||||
int res;
|
||||
|
||||
while( ( res=pipe( fd ) ) )
|
||||
while ((res=pipe(fd)))
|
||||
{
|
||||
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]);
|
||||
|
||||
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.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
|
||||
assert(end >= subbuff);
|
||||
if ((end - subbuff) < length) {
|
||||
if ((size_t)(end - subbuff) < length) {
|
||||
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());
|
||||
|
||||
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 */
|
||||
|
||||
if_block_t::if_block_t() :
|
||||
block_t(IF),
|
||||
if_expr_evaluated(false),
|
||||
any_branch_taken(false),
|
||||
is_elseif_entry(false),
|
||||
else_evaluated(false),
|
||||
if_state(if_state_if),
|
||||
block_t(IF)
|
||||
any_branch_taken(false),
|
||||
else_evaluated(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -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) :
|
||||
block_t( shadows ? FUNCTION_CALL : FUNCTION_CALL_NO_SHADOW ),
|
||||
process(p),
|
||||
name(n),
|
||||
block_t( shadows ? FUNCTION_CALL : FUNCTION_CALL_NO_SHADOW )
|
||||
name(n)
|
||||
{
|
||||
}
|
||||
|
||||
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) :
|
||||
block_t(FOR),
|
||||
variable(var),
|
||||
sequence(),
|
||||
block_t(FOR)
|
||||
sequence()
|
||||
{
|
||||
}
|
||||
|
||||
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) :
|
||||
block_t(SWITCH),
|
||||
switch_taken(false),
|
||||
switch_value(sv),
|
||||
block_t(SWITCH)
|
||||
switch_value(sv)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -3770,8 +3772,8 @@ fake_block_t::fake_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
|
||||
{
|
||||
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 is_elseif_entry; // whether we're the first command in an elseif.
|
||||
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();
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue