From 8391de3ad6ae59434750adad20eec0a52b7a81d3 Mon Sep 17 00:00:00 2001 From: Tim Stack Date: Thu, 6 Oct 2022 21:02:33 -0700 Subject: [PATCH] [data_scanner] fix DT_H1 detection Fix a broken refactor --- src/document.sections.cc | 2 +- src/file_vtab.cc | 1 + src/text_format.cc | 2 +- test/document.sections.tests.cc | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/document.sections.cc b/src/document.sections.cc index 8541564d..da9c33f7 100644 --- a/src/document.sections.cc +++ b/src/document.sections.cc @@ -251,7 +251,6 @@ public: metadata walk() { metadata_builder mb; - data_token_t dt = DT_INVALID; size_t garbage_count = 0; while (garbage_count < 1000) { @@ -260,6 +259,7 @@ public: break; } + auto dt = tokenize_res->tr_token; element el(tokenize_res->tr_token, tokenize_res->tr_capture); switch (dt) { diff --git a/src/file_vtab.cc b/src/file_vtab.cc index f635936c..aab5d5b6 100644 --- a/src/file_vtab.cc +++ b/src/file_vtab.cc @@ -210,6 +210,7 @@ CREATE TABLE lnav_file ( loo.loo_include_in_session = true; this->lf_collection.fc_file_names[path] = std::move(loo); lf->set_filename(path); + this->lf_collection.regenerate_unique_file_names(); init_session(); load_session(); diff --git a/src/text_format.cc b/src/text_format.cc index dc2c2881..0b727867 100644 --- a/src/text_format.cc +++ b/src/text_format.cc @@ -45,7 +45,7 @@ detect_text_format(string_fragment sf, static const auto MARKDOWN_EXT = ghc::filesystem::path(".markdown"); static const auto MAN_MATCHERS = lnav::pcre2pp::code::from_const( - R"(^[A-Z]+\(\d\)\s+)", PCRE2_MULTILINE); + R"(^[A-Za-z][A-Za-z\-_\+0-9]+\(\d\)\s+)", PCRE2_MULTILINE); // XXX This is a pretty crude way of detecting format... static const auto PYTHON_MATCHERS = lnav::pcre2pp::code::from_const( diff --git a/test/document.sections.tests.cc b/test/document.sections.tests.cc index f9b41100..8e88b757 100644 --- a/test/document.sections.tests.cc +++ b/test/document.sections.tests.cc @@ -125,6 +125,7 @@ DESCRIPTION auto meta = lnav::document::discover_structure(INPUT, line_range{0, -1}); + CHECK(meta.m_sections_root->hn_named_children.size() == 3); meta.m_sections_tree.visit_all([](const auto& intv) { auto ser = intv.value.match( [](const std::string& name) { return name; },