mirror of
https://github.com/Dushistov/sdcv.git
synced 2025-12-15 17:31:56 +00:00
Merge pull request #77 from cyphar/multi-word-lookups
lookup: do not bail on first failed lookup with a word list
This commit is contained in:
11
src/sdcv.cpp
11
src/sdcv.cpp
@@ -219,12 +219,15 @@ try {
|
||||
search_result rval = SEARCH_SUCCESS;
|
||||
gchar **p = get_impl(word_list);
|
||||
while (*p) {
|
||||
if ((rval = lib.process_phrase(*p++, *io, non_interactive)) != SEARCH_SUCCESS) {
|
||||
search_result this_rval = lib.process_phrase(*p++, *io, non_interactive);
|
||||
// If we encounter any error, save it but continue through the word
|
||||
// list to check all requested words.
|
||||
if (rval == SEARCH_SUCCESS)
|
||||
rval = this_rval;
|
||||
}
|
||||
if (rval != SEARCH_SUCCESS)
|
||||
return rval;
|
||||
}
|
||||
}
|
||||
} else if (!non_interactive) {
|
||||
|
||||
std::string phrase;
|
||||
while (io->read(_("Enter word or phrase: "), phrase)) {
|
||||
if (lib.process_phrase(phrase.c_str(), *io) == SEARCH_FAILURE)
|
||||
|
||||
@@ -22,4 +22,7 @@ test_json '[{"name": "Test synonyms", "wordcount": "2"},{"name": "Sample 1 test
|
||||
test_json '[{"dict": "Test synonyms","word":"test","definition":"\u000aresult of test"}]' -x -j -n --data-dir "$TEST_DIR" foo
|
||||
test_json '[]' -x -j -n --data-dir "$TEST_DIR" foobarbaaz
|
||||
|
||||
# Test multiple searches, with the first failing.
|
||||
test_json '[][{"dict": "Test synonyms","word":"test","definition":"\u000aresult of test"}]' -x -j -n --data-dir "$TEST_DIR" foobarbaaz foo
|
||||
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user