Skip to content

Commit fc4b37d

Browse files
committed
[indexing] dupe file check was always triggering text_filters_changed call
Related to #1531
1 parent f6ff280 commit fc4b37d

4 files changed

Lines changed: 35 additions & 26 deletions

File tree

src/base/string_util.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,9 +443,9 @@ char_escape_seq(char ch)
443443
return "\\t";
444444
case '\n':
445445
return "\\n";
446+
default:
447+
return std::nullopt;
446448
}
447-
448-
return std::nullopt;
449449
}
450450

451451
std::string

src/lnav.cc

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1795,12 +1795,13 @@ VALUES ('org.lnav.mouse-support', -1, DATETIME('now', '+1 minute'),
17951795
auto next_status_update_time = next_rebuild_time;
17961796
auto next_rescan_time = next_rebuild_time;
17971797
auto got_user_input = true;
1798-
sig_atomic_t render_counter = 0;
1798+
auto loop_count = 0;
17991799
std::vector<view_curses*> updated_views;
18001800
updated_views.emplace_back(&lnav_data.ld_view_stack);
18011801

18021802
while (lnav_data.ld_looping) {
18031803
auto loop_deadline = ui_clock::now() + (session_stage == 0 ? 3s : 50ms);
1804+
loop_count += 1;
18041805

18051806
std::vector<pollfd> pollfds;
18061807
size_t starting_view_stack_size = lnav_data.ld_view_stack.size();
@@ -1829,8 +1830,9 @@ VALUES ('org.lnav.mouse-support', -1, DATETIME('now', '+1 minute'),
18291830
{
18301831
initial_rescan_completed = true;
18311832

1832-
log_debug("initial rescan rebuild");
1833+
log_debug("%d: BEGIN initial rescan rebuild", loop_count);
18331834
auto rebuild_res = rebuild_indexes(loop_deadline);
1835+
log_debug("%d: END initial rescan rebuild", loop_count);
18341836
changes += rebuild_res.rir_changes;
18351837
load_session();
18361838
if (session_data.sd_save_time) {
@@ -1882,7 +1884,7 @@ VALUES ('org.lnav.mouse-support', -1, DATETIME('now', '+1 minute'),
18821884
lnav_data.ld_session_loaded = true;
18831885
session_stage += 1;
18841886
loop_deadline = ui_now;
1885-
log_debug("file count %d",
1887+
log_debug("initial rescan found %d files",
18861888
lnav_data.ld_active_files.fc_files.size());
18871889
}
18881890
auto old_gen = lnav_data.ld_active_files.fc_files_generation;
@@ -1940,6 +1942,8 @@ VALUES ('org.lnav.mouse-support', -1, DATETIME('now', '+1 minute'),
19401942
next_rebuild_time = ui_clock::now() + 333ms;
19411943
}
19421944
if (rebuild_res.rir_rescan_needed) {
1945+
log_trace("%d: rebuild detected a rescan needed",
1946+
loop_count);
19431947
rescan_needed = true;
19441948
next_rescan_time = loop_deadline = ui_now;
19451949
}
@@ -2313,7 +2317,7 @@ VALUES ('org.lnav.mouse-support', -1, DATETIME('now', '+1 minute'),
23132317
file_format_t::SQLITE_DB)
23142318
> 0))
23152319
{
2316-
log_debug("initial build completed");
2320+
log_debug("%d: initial build completed", loop_count);
23172321
lnav_data.ld_initial_build = true;
23182322
}
23192323

@@ -2373,7 +2377,7 @@ VALUES ('org.lnav.mouse-support', -1, DATETIME('now', '+1 minute'),
23732377
->readAccess()
23742378
->empty())
23752379
{
2376-
log_info("switching to paging!");
2380+
log_info("%d: switching to paging!", loop_count);
23772381
set_view_mode(ln_mode_t::PAGING);
23782382
lnav_data.ld_active_files.fc_files
23792383
| lnav::itertools::for_each(&logfile::dump_stats);
@@ -2383,6 +2387,7 @@ VALUES ('org.lnav.mouse-support', -1, DATETIME('now', '+1 minute'),
23832387
lnav_data.ld_files_view.set_selection(0_vl);
23842388
}
23852389
}
2390+
log_debug("%d: going interactive", loop_count);
23862391
session_stage += 1;
23872392
lnav_data.ld_exec_phase = lnav_exec_phase::INTERACTIVE;
23882393
load_time_bookmarks();

src/lnav.indexing.cc

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ rebuild_indexes(std::optional<ui_clock::time_point> deadline)
349349
{
350350
std::unordered_map<std::string, std::list<std::shared_ptr<logfile>>>
351351
id_to_files;
352-
bool reload = false;
352+
auto reload = false;
353353

354354
for (const auto& lf : lnav_data.ld_active_files.fc_files) {
355355
id_to_files[lf->get_content_id()].push_back(lf);
@@ -366,21 +366,24 @@ rebuild_indexes(std::optional<ui_clock::time_point> deadline)
366366

367367
auto dupe_name = pair.second.front()->get_unique_path();
368368
pair.second.pop_front();
369-
for_each(pair.second.begin(),
370-
pair.second.end(),
371-
[&dupe_name](auto& lf) {
372-
if (lf->mark_as_duplicate(dupe_name)) {
373-
log_info("Hiding duplicate file: %s",
374-
lf->get_filename().c_str());
375-
lnav_data.ld_log_source.find_data(lf) |
376-
[](auto ld) { ld->set_visibility(false); };
377-
}
378-
});
379-
reload = true;
369+
std::for_each(pair.second.begin(),
370+
pair.second.end(),
371+
[&dupe_name, &reload](auto& lf) {
372+
if (lf->mark_as_duplicate(dupe_name)) {
373+
log_info("Hiding duplicate file: %s",
374+
lf->get_filename().c_str());
375+
lnav_data.ld_log_source.find_data(lf) |
376+
[](auto ld) {
377+
ld->set_visibility(false);
378+
};
379+
reload = true;
380+
}
381+
});
380382
}
381383

382384
if (reload) {
383-
log_trace("text filters changed");
385+
log_trace(
386+
"file visibility changed, calling text_filters_changed");
384387
lss.text_filters_changed();
385388
}
386389
}

src/view_helpers.cc

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,7 @@ view_from_string(const char* name)
118118
auto view_name_iter
119119
= std::find_if(std::begin(lnav_view_strings),
120120
std::end(lnav_view_strings),
121-
[&](const auto& v) {
122-
return name_sf.iequal(v);
123-
});
121+
[&](const auto& v) { return name_sf.iequal(v); });
124122

125123
if (view_name_iter == std::end(lnav_view_strings)) {
126124
return std::nullopt;
@@ -900,18 +898,21 @@ layout_views()
900898
vis = bottom.try_consume(filter_height + (config_panel_open ? 1 : 0)
901899
+ (filters_supported ? 1 : 0));
902900
}
903-
lnav_data.ld_filter_view.set_height(vis_line_t(filter_height));
901+
lnav_data.ld_filter_view.set_height(
902+
vis_line_t(filter_height) - (filters_supported ? 0_vl : 1_vl));
904903
lnav_data.ld_filter_view.set_y(bottom + 2);
905904
lnav_data.ld_filter_view.set_width(width);
906905
lnav_data.ld_filter_view.set_visible(filters_open && vis);
907906
filter_source->fss_editor->set_width(width - 26);
908907

909-
lnav_data.ld_files_view.set_height(vis_line_t(filter_height));
908+
lnav_data.ld_files_view.set_height(
909+
vis_line_t(filter_height) - (filters_supported ? 0_vl : 1_vl));
910910
lnav_data.ld_files_view.set_y(bottom + 2);
911911
lnav_data.ld_files_view.set_width(files_width);
912912
lnav_data.ld_files_view.set_visible(files_open && vis);
913913

914-
lnav_data.ld_file_details_view.set_height(vis_line_t(filter_height));
914+
lnav_data.ld_file_details_view.set_height(
915+
vis_line_t(filter_height) - (filters_supported ? 0_vl : 1_vl));
915916
lnav_data.ld_file_details_view.set_y(bottom + 2);
916917
lnav_data.ld_file_details_view.set_x(files_width);
917918
lnav_data.ld_file_details_view.set_width(

0 commit comments

Comments
 (0)