Added constructor to completion_t for guarranted initialzation of flags attribute.

This commit is contained in:
Siteshwar Vashisht 2012-01-16 23:54:57 +05:30
parent 6f330f961b
commit 7e124cf95e
7 changed files with 26 additions and 12 deletions

View file

@ -3895,7 +3895,8 @@ void builtin_get_names( array_list_t *list )
void builtin_get_names2(std::vector<completion_t> &list) { void builtin_get_names2(std::vector<completion_t> &list) {
for (int i=0;i<builtin.size; ++i) { for (int i=0;i<builtin.size; ++i) {
completion_t data_to_push = { (wchar_t*)builtin.arr[i].key }; completion_t data_to_push;
data_to_push.completion = (wchar_t*) builtin.arr[i].key;
list.push_back( data_to_push ); list.push_back( data_to_push );
} }
} }

View file

@ -1173,7 +1173,8 @@ static void complete_cmd( const wchar_t *cmd,
//function_get_names( &possible_comp, cmd[0] == L'_' ); //function_get_names( &possible_comp, cmd[0] == L'_' );
wcstring_list_t names = function_get_names(cmd[0] == L'_' ); wcstring_list_t names = function_get_names(cmd[0] == L'_' );
for (size_t i=0; i < names.size(); i++) { for (size_t i=0; i < names.size(); i++) {
completion_t data_to_push = { names.at(i) }; completion_t data_to_push;
data_to_push.completion = names.at(i);
possible_comp.push_back( data_to_push ); possible_comp.push_back( data_to_push );
} }

View file

@ -127,6 +127,10 @@ struct completion_t
*/ */
int flags; int flags;
completion_t () {
flags = 0;
}
bool operator < (const completion_t& rhs) const { return this->completion < rhs.completion; } bool operator < (const completion_t& rhs) const { return this->completion < rhs.completion; }
bool operator == (const completion_t& rhs) const { return this->completion == rhs.completion; } bool operator == (const completion_t& rhs) const { return this->completion == rhs.completion; }
bool operator != (const completion_t& rhs) const { return this->completion != rhs.completion; } bool operator != (const completion_t& rhs) const { return this->completion != rhs.completion; }

View file

@ -1380,7 +1380,8 @@ static int expand_variables2( wchar_t * in, std::vector<completion_t> &out, int
wchar_t *next = (wchar_t *)al_get( &var_item_list, j ); wchar_t *next = (wchar_t *)al_get( &var_item_list, j );
if( is_ok && (i == 0) && (!in[stop_pos]) ) if( is_ok && (i == 0) && (!in[stop_pos]) )
{ {
completion_t data_to_push = { next }; completion_t data_to_push;
data_to_push.completion = next;
out.push_back( data_to_push ); out.push_back( data_to_push );
} }
else else
@ -1464,7 +1465,8 @@ static int expand_variables2( wchar_t * in, std::vector<completion_t> &out, int
if( !empty ) if( !empty )
{ {
completion_t data_to_push = { in }; completion_t data_to_push;
data_to_push.completion = in;
out.push_back( data_to_push ); out.push_back( data_to_push );
} }
else else
@ -1566,7 +1568,8 @@ static int expand_brackets( wchar_t *in, int flags, std::vector<completion_t> &o
if( bracket_begin == 0 ) if( bracket_begin == 0 )
{ {
completion_t data_to_push = { in }; completion_t data_to_push;
data_to_push.completion = in;
out.push_back( data_to_push ); out.push_back( data_to_push );
return 1; return 1;
} }

View file

@ -1944,7 +1944,8 @@ static int parse_job( process_t *p,
} }
} }
} }
completion_t data_to_push = { nxt }; completion_t data_to_push;
data_to_push.completion = nxt;
args->push_back( data_to_push ); args->push_back( data_to_push );
} }
@ -1998,9 +1999,11 @@ static int parse_job( process_t *p,
// al_truncate( args, 0 ); // al_truncate( args, 0 );
args->clear(); args->clear();
// al_push( args, halloc_wcsdup( j, L"cd" ) ); // al_push( args, halloc_wcsdup( j, L"cd" ) );
completion_t comp = { L"cd" }; completion_t comp;
comp.completion = L"cd";
args->push_back(comp); args->push_back(comp);
completion_t comp2 = { tmp }; completion_t comp2;
comp2.completion = tmp;
args->push_back( comp2 ); args->push_back( comp2 );
// free(tmp); // free(tmp);

View file

@ -1254,8 +1254,8 @@ static void run_pager( wchar_t *prefix, int is_quoted, const std::vector<complet
foo ); foo );
} }
free( foo ); // free( foo );
free( baz ); // free( baz );
} }
free( escaped_separator ); free( escaped_separator );

View file

@ -897,7 +897,8 @@ static int wildcard_expand_internal( const wchar_t *wc,
else else
{ {
res = 1; res = 1;
completion_t data_to_push = { base_dir }; completion_t data_to_push;
data_to_push.completion = base_dir;
if ( std::find( out.begin(), out.end(), data_to_push ) != out.end() ){ if ( std::find( out.begin(), out.end(), data_to_push ) != out.end() ){
out.push_back( data_to_push); out.push_back( data_to_push);
} }
@ -970,7 +971,8 @@ static int wildcard_expand_internal( const wchar_t *wc,
} }
else else
{ {
completion_t data_to_push = { long_name }; completion_t data_to_push;
data_to_push.completion = long_name;
out.push_back( data_to_push ); out.push_back( data_to_push );
} }
res = 1; res = 1;