Skip to content

Commit 236ab24

Browse files
committed
[session] do not clear format-provided tags/partitions when resetting
1 parent 06db116 commit 236ab24

6 files changed

Lines changed: 97 additions & 5 deletions

src/logfile_sub_source.cc

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3239,7 +3239,32 @@ logfile_sub_source::clear_bookmark_metadata()
32393239
continue;
32403240
}
32413241

3242-
ld->get_file_ptr()->get_bookmark_metadata().clear();
3242+
auto& bm_map = ld->get_file_ptr()->get_bookmark_metadata();
3243+
auto iter = bm_map.begin();
3244+
while (iter != bm_map.end()) {
3245+
auto& meta = iter->second;
3246+
meta.bm_comment.clear();
3247+
meta.bm_annotations.la_pairs.clear();
3248+
meta.bm_opid.clear();
3249+
if (meta.bm_name_source == bookmark_metadata::meta_source::user) {
3250+
meta.bm_name.clear();
3251+
}
3252+
auto tag_iter = meta.bm_tags.begin();
3253+
while (tag_iter != meta.bm_tags.end()) {
3254+
if (tag_iter->te_source
3255+
== bookmark_metadata::meta_source::user)
3256+
{
3257+
tag_iter = meta.bm_tags.erase(tag_iter);
3258+
} else {
3259+
++tag_iter;
3260+
}
3261+
}
3262+
if (meta.empty(bookmark_metadata::categories::any)) {
3263+
iter = bm_map.erase(iter);
3264+
} else {
3265+
++iter;
3266+
}
3267+
}
32433268
}
32443269
}
32453270

src/session_data.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2364,19 +2364,17 @@ reset_session()
23642364
}
23652365

23662366
for (auto& tc : lnav_data.ld_views) {
2367-
text_sub_source* tss = tc.get_sub_source();
2367+
auto* tss = tc.get_sub_source();
23682368

23692369
if (tss == nullptr) {
23702370
continue;
23712371
}
23722372
tss->get_filters().clear_filters();
23732373
tss->tss_apply_filters = true;
2374-
tss->text_filters_changed();
23752374
tss->text_clear_marks(&textview_curses::BM_USER);
23762375
tc.get_bookmarks()[&textview_curses::BM_USER].clear();
2377-
tss->text_clear_marks(&textview_curses::BM_META);
2378-
tc.get_bookmarks()[&textview_curses::BM_META].clear();
23792376
tc.get_bookmarks()[&textview_curses::BM_STICKY].clear();
2377+
tss->text_filters_changed();
23802378
tc.reload_data();
23812379
}
23822380

test/expected/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -748,6 +748,8 @@ dist_noinst_DATA = \
748748
test_sessions.sh_42c75e0d5f674a3df5251e7cd1a9f950d592a2c8.out \
749749
test_sessions.sh_430b9522ba1a37983138f3c4935cba91b781e415.err \
750750
test_sessions.sh_430b9522ba1a37983138f3c4935cba91b781e415.out \
751+
test_sessions.sh_446d4b5105468c36d595f5ea696eac1e550016f7.err \
752+
test_sessions.sh_446d4b5105468c36d595f5ea696eac1e550016f7.out \
751753
test_sessions.sh_4b353754b96aa93f7c5053697e3e0564721454d5.err \
752754
test_sessions.sh_4b353754b96aa93f7c5053697e3e0564721454d5.out \
753755
test_sessions.sh_4f13dd3858546b6e04a27e244159d355e368f2ae.err \

test/expected/test_sessions.sh_446d4b5105468c36d595f5ea696eac1e550016f7.err

Whitespace-only changes.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
log_line,log_part
2+
24,10.1.10.103
3+
25,10.1.10.103
4+
26,10.1.10.103
5+
27,10.1.10.103
6+
28,10.1.10.103
7+
29,10.1.10.103
8+
30,10.1.10.103
9+
31,10.1.10.103
10+
32,10.1.10.103
11+
33,10.1.10.103
12+
34,10.1.10.103
13+
35,10.1.10.103
14+
36,10.1.10.103
15+
37,10.1.10.103
16+
38,10.1.10.103
17+
39,10.1.10.103
18+
40,10.1.10.103
19+
41,10.1.10.103
20+
42,10.1.10.103
21+
43,10.1.10.103
22+
44,10.1.10.103
23+
45,10.1.10.103
24+
46,10.1.10.103
25+
47,10.1.10.103
26+
48,10.1.10.103
27+
49,10.1.10.103
28+
50,10.1.10.103
29+
51,10.1.10.103
30+
52,10.1.10.103
31+
53,10.1.10.103
32+
54,10.1.10.103
33+
55,10.1.10.103
34+
56,10.1.10.103
35+
57,10.1.10.103
36+
58,10.1.10.103
37+
59,10.1.10.103
38+
60,10.1.10.103
39+
61,10.1.10.103
40+
62,10.1.10.103
41+
63,10.1.10.103
42+
64,10.1.10.103
43+
65,10.1.10.103
44+
66,10.1.10.103
45+
67,10.1.10.62
46+
68,10.1.10.62
47+
69,10.1.10.62
48+
70,10.1.10.62
49+
71,10.1.10.62
50+
72,10.1.10.62
51+
73,10.1.10.62
52+
74,10.1.10.62
53+
75,10.1.10.62
54+
76,10.1.10.62
55+
77,10.1.10.62
56+
78,10.1.10.62
57+
79,10.1.10.62
58+
80,10.1.10.62
59+
81,10.1.10.62

test/test_sessions.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,14 @@ run_cap_test ${lnav_test} -nq \
306306
run_cap_test sqlite3 ${HOME}/.lnav/log_metadata.db \
307307
"SELECT count(*) FROM bookmarks WHERE part_name IS NOT NULL AND part_name != ''"
308308

309+
# format-defined partitions should survive a session reset
310+
run_cap_test ${lnav_test} -n \
311+
-I ${test_dir} \
312+
-c ':reset-session' \
313+
-c ';SELECT log_line, log_part FROM syslog_log WHERE log_part IS NOT NULL' \
314+
-c ':write-csv-to -' \
315+
${test_dir}/logfile_partitions.0
316+
309317
rm -rf ./sessions
310318
mkdir -p $HOME
311319

0 commit comments

Comments
 (0)