Skip to content

Commit 18760ca

Browse files
authored
Merge pull request diffblue#6364 from tautschnig/csv_cleanup
cmdlinet::get_comma_separated_values: re-use split_string
2 parents 6d77bf9 + 1c74f17 commit 18760ca

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

regression/goto-instrument/fp-reachability-slice3/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
main.c
3-
--fp-reachability-slice b,c
3+
--fp-reachability-slice b --fp-reachability-slice c
44
^EXIT=0$
55
^SIGNAL=0$
66
1 file main.c line 34

src/util/cmdline.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Author: Daniel Kroening, [email protected]
1111
#include <util/edit_distance.h>
1212
#include <util/exception_utils.h>
1313
#include <util/invariant.h>
14+
#include <util/string_utils.h>
1415

1516
cmdlinet::cmdlinet()
1617
{
@@ -120,16 +121,14 @@ std::list<std::string>
120121
cmdlinet::get_comma_separated_values(const char *option) const
121122
{
122123
std::list<std::string> separated_values;
123-
auto i = getoptnr(option);
124-
if(i.has_value() && !options[*i].values.empty())
124+
125+
for(const auto &csv : get_values(option))
125126
{
126-
std::istringstream values_stream(options[*i].values.front());
127-
std::string single_value;
128-
while(std::getline(values_stream, single_value, ','))
129-
{
130-
separated_values.push_back(single_value);
131-
}
127+
const auto values = split_string(csv, ',');
128+
separated_values.insert(
129+
separated_values.end(), values.begin(), values.end());
132130
}
131+
133132
return separated_values;
134133
}
135134

src/util/cmdline.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ class cmdlinet
8080
const std::list<std::string> &get_values(const std::string &option) const;
8181
const std::list<std::string> &get_values(char option) const;
8282

83+
/// Collect all occurrences of option \p option and split their values on each
84+
/// comma, merging them into a single list of values.
8385
std::list<std::string> get_comma_separated_values(const char *option) const;
8486

8587
virtual bool isset(char option) const;

0 commit comments

Comments
 (0)