Add some more cancellability to autosuggestions

This commit is contained in:
ridiculousfish 2013-04-07 16:40:14 -07:00
parent 94acb6ed5d
commit c6302e3b3f

View file

@ -1298,7 +1298,7 @@ struct autosuggestion_context_t
return 0;
}
while (searcher.go_backwards())
while (! reader_thread_job_is_stale() && searcher.go_backwards())
{
history_item_t item = searcher.current_item();
@ -1312,9 +1312,12 @@ struct autosuggestion_context_t
this->autosuggestion = searcher.current_string();
return 1;
}
}
/* Maybe cancel here */
if (reader_thread_job_is_stale())
return 0;
/* Try handling a special command like cd */
wcstring special_suggestion;
if (autosuggest_suggest_special(search_string, working_directory, special_suggestion))
@ -1322,6 +1325,10 @@ struct autosuggestion_context_t
this->autosuggestion = special_suggestion;
return 1;
}
/* Maybe cancel here */
if (reader_thread_job_is_stale())
return 0;
// Here we do something a little funny
// If the line ends with a space, and the cursor is not at the end,