Skip to content

Commit 214d652

Browse files
committed
Fixed broken logic in get_line function.
1 parent 8c70c63 commit 214d652

1 file changed

Lines changed: 5 additions & 15 deletions

File tree

src/utils.cpp

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,11 @@
88
namespace Utils {
99

1010
std::istream& StreamHandler::get_line(std::istream& stream, std::string& line) {
11-
std::string newline;
12-
13-
std::getline(stream, newline);
14-
15-
// Windows CRLF (\r\n)
16-
if (!newline.empty() && newline[newline.size() - 1] == '\r') {
17-
line = newline.substr(0, newline.size() - 1);
18-
// MacOS LF (\r)
19-
} else if (!newline.empty() && newline[newline.size()] == '\r') {
20-
line = newline.replace(newline.size(), 1, "\n");
21-
} else {
22-
line = newline;
23-
}
24-
25-
return stream;
11+
std::getline(stream, line);
12+
if (!line.empty() && line.back() == '\r') {
13+
line.pop_back(); // strip CR from CRLF
14+
}
15+
return stream;
2616
}
2717

2818
std::istream& StreamHandler::get_next_non_blank_line(std::istream& stream, std::string& line) {

0 commit comments

Comments
 (0)