merge changes default tip

Tue, 15 Jul 2025 19:18:15 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 15 Jul 2025 19:18:15 +0200
changeset 57
4454fe0aed0d
parent 56
3d2720f95cfb (current diff)
parent 55
3541b2c77dfd (diff)

merge changes

src/heatmap.cpp file | annotate | diff | comparison | revisions
--- a/src/heatmap.cpp	Tue Jul 15 19:14:29 2025 +0200
+++ b/src/heatmap.cpp	Tue Jul 15 19:18:15 2025 +0200
@@ -36,14 +36,19 @@
 
     for (auto line: std::views::split(log, "\n"sv)) {
         if (line.empty()) continue;
-        auto parts = std::views::split(line, "#"sv);
-        auto parts_iter = parts.begin();
-        std::string author{settings.map_author(std::string_view{*parts_iter})};
+
+        // find all delimiters
+        const auto line_view = std::string_view{line};
+        const auto pos_delim1 = line_view.find('#', 0);
+        const auto pos_delim2 = line_view.find('#', pos_delim1 + 1);
+
+        std::string author{settings.map_author(line_view.substr(0, pos_delim1))};
+        std::string_view date_view{line_view.substr(pos_delim1+1, pos_delim2)};
+        std::string_view summary_view{line_view.substr(pos_delim2+1)};
 
         int year = 0;
         unsigned int month = 0, day = 0;
-        ++parts_iter;
-        auto date_parts = std::views::split(*parts_iter, "-"sv)
+        auto date_parts = std::views::split(date_view, "-"sv)
                           | std::views::transform([](auto r) { return std::string_view(r); })
                           | std::ranges::to<std::vector>();
         std::from_chars(date_parts[0].begin(), date_parts[0].end(), year);
@@ -52,8 +57,7 @@
         auto &[summaries] = m_heatmap[repo_key][author][chrono::year_month_day{
             chrono::year{year}, chrono::month{month}, chrono::day{day}
         }];
-        ++parts_iter;
-        summaries[m_current_repo].emplace_back(std::string_view{*parts_iter});
+        summaries[m_current_repo].emplace_back(summary_view);
     }
 }
 

mercurial