@@ -173,13 +173,16 @@ textfile_sub_source::text_value_for_line(textview_curses& tc,
173173 }
174174
175175 const auto ll = lf->begin () + lfo->lfo_filter_state .tfs_index [line];
176- auto read_result = lf->read_line (ll);
176+ auto read_opts = subline_options{};
177+ read_opts.scrub_invalid_utf8 = false ;
178+ auto read_result = lf->read_line (ll, read_opts);
177179 this ->tss_line_indent_size = 0 ;
178180 this ->tss_plain_line_attrs .clear ();
179181 if (read_result.isOk ()) {
180182 auto sbr = read_result.unwrap ();
181183 value_out = to_string (sbr);
182- if (sbr.get_metadata ().m_has_ansi ) {
184+ const auto & meta = sbr.get_metadata ();
185+ if (meta.m_valid_utf && meta.m_has_ansi ) {
183186 scrub_ansi_string (value_out, &this ->tss_plain_line_attrs );
184187 }
185188 for (const auto & ch : value_out) {
@@ -852,7 +855,9 @@ textfile_sub_source::rescan_files(textfile_sub_source::scan_callback& callback,
852855 " discovery" ,
853856 lf->get_path_for_key ().c_str ());
854857 iter->fvs_mtime = st.st_mtime ;
855- iter->fvs_file_size = lf->get_index_size ();
858+ iter->fvs_file_size = st.st_size ;
859+ iter->fvs_file_indexed_size = lf->get_index_size ();
860+ iter->fvs_error = " skipping meta discovery" ;
856861 } else {
857862 auto content
858863 = attr_line_t (read_file_res.rfr_content );
0 commit comments