mirror of
https://github.com/tstack/lnav.git
synced 2024-08-17 17:00:30 +03:00
[coverity] (more) use move to avoid auto copies
This commit is contained in:
parent
eed8f3871a
commit
edc5bf171b
@ -152,10 +152,12 @@ breadcrumb_curses::reload_data()
|
||||
}
|
||||
}
|
||||
|
||||
auto matches = attr_line_t().join(
|
||||
this->bc_similar_values
|
||||
| lnav::itertools::map(&breadcrumb::possibility::p_display_value),
|
||||
"\n");
|
||||
auto matches = attr_line_t()
|
||||
.join(this->bc_similar_values
|
||||
| lnav::itertools::map(
|
||||
&breadcrumb::possibility::p_display_value),
|
||||
"\n")
|
||||
.move();
|
||||
this->bc_match_source.replace_with(matches);
|
||||
auto width = this->bc_possible_values
|
||||
| lnav::itertools::fold(
|
||||
|
@ -293,7 +293,8 @@ sql_jget(sqlite3_context* context, int argc, sqlite3_value** argv)
|
||||
err = yajl_get_error(
|
||||
handle.in(), 1, json_in.udata(), json_in.length());
|
||||
auto um = lnav::console::user_message::error("invalid JSON")
|
||||
.with_reason((const char*) err);
|
||||
.with_reason((const char*) err)
|
||||
.move();
|
||||
|
||||
to_sqlite(context, um);
|
||||
yajl_free_error(handle.in(), err);
|
||||
@ -318,7 +319,8 @@ sql_jget(sqlite3_context* context, int argc, sqlite3_value** argv)
|
||||
err = yajl_get_error(
|
||||
handle.in(), 1, json_in.udata(), json_in.length());
|
||||
auto um = lnav::console::user_message::error("invalid JSON")
|
||||
.with_reason((const char*) err);
|
||||
.with_reason((const char*) err)
|
||||
.move();
|
||||
|
||||
to_sqlite(context, um);
|
||||
yajl_free_error(handle.in(), err);
|
||||
|
23
src/lnav.cc
23
src/lnav.cc
@ -986,11 +986,11 @@ check_for_file_zones()
|
||||
}
|
||||
}
|
||||
if (with_tz_count > 0 && !without_tz_files.empty()) {
|
||||
auto note
|
||||
const auto note
|
||||
= attr_line_t("The file(s) without a zone: ")
|
||||
.join(
|
||||
without_tz_files, VC_ROLE.value(role_t::VCR_FILE), ", ");
|
||||
auto um
|
||||
.join(without_tz_files, VC_ROLE.value(role_t::VCR_FILE), ", ")
|
||||
.move();
|
||||
const auto um
|
||||
= lnav::console::user_message::warning(
|
||||
"Some messages may not be sorted by time correctly")
|
||||
.with_reason(
|
||||
@ -1003,7 +1003,8 @@ check_for_file_zones()
|
||||
.append(":set-file-timezone"_symbol)
|
||||
.append(
|
||||
" command to set the zone for messages in files "
|
||||
"that do not include a zone in the timestamp"));
|
||||
"that do not include a zone in the timestamp"))
|
||||
.move();
|
||||
|
||||
lnav_data.ld_exec_context.ec_error_callback_stack.back()(um);
|
||||
}
|
||||
@ -2644,7 +2645,8 @@ SELECT tbl_name FROM sqlite_master WHERE sql LIKE 'CREATE VIRTUAL TABLE%'
|
||||
"definition "
|
||||
"files to install in your lnav "
|
||||
"configuration "
|
||||
"directory");
|
||||
"directory")
|
||||
.move();
|
||||
const auto install_help
|
||||
= attr_line_t(
|
||||
"log format definitions are JSON files that "
|
||||
@ -2653,7 +2655,8 @@ SELECT tbl_name FROM sqlite_master WHERE sql LIKE 'CREATE VIRTUAL TABLE%'
|
||||
.append(
|
||||
"See: "
|
||||
"https://docs.lnav.org/en/latest/"
|
||||
"formats.html");
|
||||
"formats.html")
|
||||
.move();
|
||||
|
||||
lnav::console::print(stderr,
|
||||
lnav::console::user_message::error(
|
||||
@ -2759,7 +2762,8 @@ SELECT tbl_name FROM sqlite_master WHERE sql LIKE 'CREATE VIRTUAL TABLE%'
|
||||
auto um = lnav::console::user_message::error(
|
||||
attr_line_t("cannot read file to install -- ")
|
||||
.append(lnav::roles::file(file_path)))
|
||||
.with_reason(read_res.unwrap());
|
||||
.with_reason(read_res.unwrap())
|
||||
.move();
|
||||
|
||||
lnav::console::print(stderr, um);
|
||||
return EXIT_FAILURE;
|
||||
@ -2790,7 +2794,8 @@ SELECT tbl_name FROM sqlite_master WHERE sql LIKE 'CREATE VIRTUAL TABLE%'
|
||||
auto um = lnav::console::user_message::error(
|
||||
attr_line_t("failed to install file to -- ")
|
||||
.append(lnav::roles::file(dst_path)))
|
||||
.with_reason(write_res.unwrapErr());
|
||||
.with_reason(write_res.unwrapErr())
|
||||
.move();
|
||||
|
||||
lnav::console::print(stderr, um);
|
||||
return EXIT_FAILURE;
|
||||
|
@ -457,8 +457,8 @@ update_active_files(file_collection& new_files)
|
||||
.with_help(
|
||||
attr_line_t("Use ")
|
||||
.append("ulimit -n"_quoted_code)
|
||||
.append(
|
||||
" to increase the limit before running lnav"));
|
||||
.append(" to increase the limit before running lnav"))
|
||||
.move();
|
||||
|
||||
lnav_data.ld_exec_context.ec_error_callback_stack.back()(um);
|
||||
}
|
||||
|
@ -94,12 +94,15 @@ struct subcmd_config_t {
|
||||
|
||||
static perform_result_t default_action(const subcmd_config_t& sc)
|
||||
{
|
||||
auto um = console::user_message::error(
|
||||
"expecting an operation related to the regex101.com integration");
|
||||
um.with_help(
|
||||
sc.sc_config_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer, attr_line_t{"the available operations are:"}));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
"expecting an operation related to the regex101.com "
|
||||
"integration")
|
||||
.with_help(sc.sc_config_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer,
|
||||
attr_line_t{"the available operations are:"}))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -148,7 +151,8 @@ struct subcmd_config_t {
|
||||
auto um = lnav::console::user_message::error(
|
||||
attr_line_t("Unable to get full path for file: ")
|
||||
.append(lnav::roles::file(sc.sc_path)))
|
||||
.with_reason(realpath_res.unwrapErr());
|
||||
.with_reason(realpath_res.unwrapErr())
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -176,7 +180,8 @@ struct subcmd_config_t {
|
||||
.append(":set-file-timezone"_symbol)
|
||||
.append(
|
||||
" command to set the zone for messages in files "
|
||||
"that do not include a zone in the timestamp"));
|
||||
"that do not include a zone in the timestamp"))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -212,33 +217,41 @@ struct subcmd_format_t {
|
||||
const
|
||||
{
|
||||
if (this->sf_name.empty()) {
|
||||
auto um = console::user_message::error(
|
||||
"expecting a format name to operate on");
|
||||
um.with_note(
|
||||
(log_format::get_root_formats()
|
||||
| lnav::itertools::map(&log_format::get_name)
|
||||
| lnav::itertools::sort_with(intern_string_t::case_lt)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::fold(symbol_reducer, attr_line_t{}))
|
||||
.add_header("the available formats are: ")
|
||||
.wrap_with(&DEFAULT_WRAPPING));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
"expecting a format name to operate on")
|
||||
.with_note(
|
||||
(log_format::get_root_formats()
|
||||
| lnav::itertools::map(&log_format::get_name)
|
||||
| lnav::itertools::sort_with(
|
||||
intern_string_t::case_lt)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::fold(symbol_reducer,
|
||||
attr_line_t{}))
|
||||
.add_header("the available formats are: ")
|
||||
.wrap_with(&DEFAULT_WRAPPING))
|
||||
.move();
|
||||
|
||||
return Err(um);
|
||||
}
|
||||
|
||||
auto lformat = log_format::find_root_format(this->sf_name.c_str());
|
||||
if (lformat == nullptr) {
|
||||
auto um = console::user_message::error(
|
||||
attr_line_t("unknown format: ")
|
||||
.append(lnav::roles::symbol(this->sf_name)));
|
||||
um.with_note(
|
||||
(log_format::get_root_formats()
|
||||
| lnav::itertools::map(&log_format::get_name)
|
||||
| lnav::itertools::similar_to(this->sf_name)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::fold(symbol_reducer, attr_line_t{}))
|
||||
.add_header("did you mean one of the following?\n")
|
||||
.wrap_with(&DEFAULT_WRAPPING));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
attr_line_t("unknown format: ")
|
||||
.append(lnav::roles::symbol(this->sf_name)))
|
||||
.with_note(
|
||||
(log_format::get_root_formats()
|
||||
| lnav::itertools::map(&log_format::get_name)
|
||||
| lnav::itertools::similar_to(this->sf_name)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::fold(symbol_reducer,
|
||||
attr_line_t{}))
|
||||
.add_header(
|
||||
"did you mean one of the following?\n")
|
||||
.wrap_with(&DEFAULT_WRAPPING))
|
||||
.move();
|
||||
|
||||
return Err(um);
|
||||
}
|
||||
@ -271,15 +284,18 @@ struct subcmd_format_t {
|
||||
auto* ext_lformat = TRY(this->validate_external_format());
|
||||
|
||||
if (this->sf_regex_name.empty()) {
|
||||
auto um = console::user_message::error(
|
||||
"expecting a regex name to operate on");
|
||||
um.with_note(
|
||||
ext_lformat->elf_pattern_order
|
||||
| lnav::itertools::map(&external_log_format::pattern::p_name)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::fold(
|
||||
symbol_reducer,
|
||||
attr_line_t{"the available regexes are: "}));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
"expecting a regex name to operate on")
|
||||
.with_note(
|
||||
ext_lformat->elf_pattern_order
|
||||
| lnav::itertools::map(
|
||||
&external_log_format::pattern::p_name)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::fold(
|
||||
symbol_reducer,
|
||||
attr_line_t{"the available regexes are: "}))
|
||||
.move();
|
||||
|
||||
return Err(um);
|
||||
}
|
||||
@ -290,16 +306,19 @@ struct subcmd_format_t {
|
||||
}
|
||||
}
|
||||
|
||||
auto um = console::user_message::error(
|
||||
attr_line_t("unknown regex: ")
|
||||
.append(lnav::roles::symbol(this->sf_regex_name)));
|
||||
um.with_note(
|
||||
(ext_lformat->elf_pattern_order
|
||||
| lnav::itertools::map(&external_log_format::pattern::p_name)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::similar_to(this->sf_regex_name)
|
||||
| lnav::itertools::fold(symbol_reducer, attr_line_t{}))
|
||||
.add_header("did you mean one of the following?\n"));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
attr_line_t("unknown regex: ")
|
||||
.append(lnav::roles::symbol(this->sf_regex_name)))
|
||||
.with_note(
|
||||
(ext_lformat->elf_pattern_order
|
||||
| lnav::itertools::map(
|
||||
&external_log_format::pattern::p_name)
|
||||
| lnav::itertools::map(&intern_string_t::to_string)
|
||||
| lnav::itertools::similar_to(this->sf_regex_name)
|
||||
| lnav::itertools::fold(symbol_reducer, attr_line_t{}))
|
||||
.add_header("did you mean one of the following?\n"))
|
||||
.move();
|
||||
|
||||
return Err(um);
|
||||
}
|
||||
@ -327,19 +346,21 @@ struct subcmd_format_t {
|
||||
", ");
|
||||
}
|
||||
|
||||
auto um = console::user_message::error(
|
||||
attr_line_t("expecting an operation to perform on the ")
|
||||
.append(lnav::roles::symbol(sf.sf_name))
|
||||
.append(" format"));
|
||||
um.with_note(attr_line_t()
|
||||
.append(lnav::roles::symbol(sf.sf_name))
|
||||
.append(": ")
|
||||
.append(lformat->lf_description)
|
||||
.append(ext_details));
|
||||
um.with_help(
|
||||
sf.sf_format_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer, attr_line_t{"the available operations are:"}));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
attr_line_t("expecting an operation to perform on the ")
|
||||
.append(lnav::roles::symbol(sf.sf_name))
|
||||
.append(" format"))
|
||||
.with_note(attr_line_t()
|
||||
.append(lnav::roles::symbol(sf.sf_name))
|
||||
.append(": ")
|
||||
.append(lformat->lf_description)
|
||||
.append(ext_details))
|
||||
.with_help(sf.sf_format_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer,
|
||||
attr_line_t{"the available operations are:"}))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -353,13 +374,15 @@ struct subcmd_format_t {
|
||||
}
|
||||
|
||||
auto um = console::user_message::error(
|
||||
attr_line_t("expecting an operation to perform on the ")
|
||||
.append(lnav::roles::symbol(sf.sf_regex_name))
|
||||
.append(" regular expression"));
|
||||
|
||||
um.with_help(attr_line_t{"the available subcommands are:"}.append(
|
||||
sf.sf_regex_app->get_subcommands({})
|
||||
| lnav::itertools::fold(subcmd_reducer, attr_line_t{})));
|
||||
attr_line_t("expecting an operation to perform on the ")
|
||||
.append(lnav::roles::symbol(sf.sf_regex_name))
|
||||
.append(" regular expression"))
|
||||
.with_help(
|
||||
attr_line_t{"the available subcommands are:"}.append(
|
||||
sf.sf_regex_app->get_subcommands({})
|
||||
| lnav::itertools::fold(subcmd_reducer,
|
||||
attr_line_t{})))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -764,12 +787,14 @@ struct subcmd_piper_t {
|
||||
|
||||
static perform_result_t default_action(const subcmd_piper_t& sp)
|
||||
{
|
||||
auto um = console::user_message::error(
|
||||
"expecting an operation related to piper storage");
|
||||
um.with_help(
|
||||
sp.sp_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer, attr_line_t{"the available operations are:"}));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
"expecting an operation related to piper storage")
|
||||
.with_help(sp.sp_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer,
|
||||
attr_line_t{"the available operations are:"}))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -893,7 +918,8 @@ struct subcmd_piper_t {
|
||||
attr_line_t("unable to access piper directory: ")
|
||||
.append(lnav::roles::file(
|
||||
lnav::piper::storage_path().string())))
|
||||
.with_reason(ec.message());
|
||||
.with_reason(ec.message())
|
||||
.move();
|
||||
return {std::move(um)};
|
||||
}
|
||||
|
||||
@ -910,7 +936,8 @@ struct subcmd_piper_t {
|
||||
.append(lnav::roles::file("lnav"))
|
||||
.append(" or using the ")
|
||||
.append_quoted(lnav::roles::symbol(":sh"))
|
||||
.append(" command"));
|
||||
.append(" command"))
|
||||
.move();
|
||||
return {std::move(um)};
|
||||
}
|
||||
|
||||
@ -1000,7 +1027,8 @@ struct subcmd_piper_t {
|
||||
"associated metadata."))
|
||||
.with_help(
|
||||
"You can reopen a capture by passing the piper URL "
|
||||
"to lnav");
|
||||
"to lnav")
|
||||
.move();
|
||||
retval.emplace_back(extra_um);
|
||||
}
|
||||
retval.emplace_back(lnav::console::user_message::raw(txt));
|
||||
@ -1044,12 +1072,15 @@ struct subcmd_regex101_t {
|
||||
|
||||
static perform_result_t default_action(const subcmd_regex101_t& sr)
|
||||
{
|
||||
auto um = console::user_message::error(
|
||||
"expecting an operation related to the regex101.com integration");
|
||||
um.with_help(
|
||||
sr.sr_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer, attr_line_t{"the available operations are:"}));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
"expecting an operation related to the regex101.com "
|
||||
"integration")
|
||||
.with_help(sr.sr_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer,
|
||||
attr_line_t{"the available operations are:"}))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -1130,12 +1161,14 @@ struct subcmd_crash_t {
|
||||
|
||||
static perform_result_t default_action(const subcmd_crash_t& sc)
|
||||
{
|
||||
auto um = console::user_message::error(
|
||||
"expecting an operation related to crash logs");
|
||||
um.with_help(
|
||||
sc.sc_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer, attr_line_t{"the available operations are:"}));
|
||||
auto um
|
||||
= console::user_message::error(
|
||||
"expecting an operation related to crash logs")
|
||||
.with_help(sc.sc_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer,
|
||||
attr_line_t{"the available operations are:"}))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
}
|
||||
@ -1458,11 +1491,13 @@ perform(std::shared_ptr<operations> opts)
|
||||
return opts->o_ops.match(
|
||||
[](const no_subcmd_t& ns) -> perform_result_t {
|
||||
auto um = console::user_message::error(
|
||||
attr_line_t("expecting an operation to perform"));
|
||||
um.with_help(ns.ns_root_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer,
|
||||
attr_line_t{"the available operations are:"}));
|
||||
attr_line_t("expecting an operation to perform"))
|
||||
.with_help(
|
||||
ns.ns_root_app->get_subcommands({})
|
||||
| lnav::itertools::fold(
|
||||
subcmd_reducer,
|
||||
attr_line_t{"the available operations are:"}))
|
||||
.move();
|
||||
|
||||
return {std::move(um)};
|
||||
},
|
||||
|
@ -1061,8 +1061,10 @@ com_mark_expr(exec_context& ec,
|
||||
#endif
|
||||
if (retcode != SQLITE_OK) {
|
||||
const char* errmsg = sqlite3_errmsg(lnav_data.ld_db);
|
||||
auto expr_al = attr_line_t(expr).with_attr_for_all(
|
||||
VC_ROLE.value(role_t::VCR_QUOTED_CODE));
|
||||
auto expr_al
|
||||
= attr_line_t(expr)
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_QUOTED_CODE))
|
||||
.move();
|
||||
readline_sqlite_highlighter(expr_al, std::nullopt);
|
||||
auto um
|
||||
= lnav::console::user_message::error(
|
||||
@ -2626,8 +2628,10 @@ com_filter_expr(exec_context& ec,
|
||||
#endif
|
||||
if (retcode != SQLITE_OK) {
|
||||
const char* errmsg = sqlite3_errmsg(lnav_data.ld_db);
|
||||
auto expr_al = attr_line_t(expr).with_attr_for_all(
|
||||
VC_ROLE.value(role_t::VCR_QUOTED_CODE));
|
||||
auto expr_al
|
||||
= attr_line_t(expr)
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_QUOTED_CODE))
|
||||
.move();
|
||||
readline_sqlite_highlighter(expr_al, std::nullopt);
|
||||
auto um = lnav::console::user_message::error(
|
||||
attr_line_t("invalid filter expression: ")
|
||||
|
@ -279,7 +279,8 @@ install_from_git(const std::string& repo)
|
||||
.with_reason(
|
||||
attr_line_t("git failed to create the local directory ")
|
||||
.append(
|
||||
lnav::roles::file(local_staging_path.string())));
|
||||
lnav::roles::file(local_staging_path.string())))
|
||||
.move();
|
||||
lnav::console::print(stderr, um);
|
||||
return false;
|
||||
}
|
||||
@ -330,7 +331,8 @@ install_from_git(const std::string& repo)
|
||||
auto um = lnav::console::user_message::error(
|
||||
attr_line_t("invalid lnav repo: ")
|
||||
.append(lnav::roles::file(repo)))
|
||||
.with_reason("no .json, .sql, or .lnav files were found");
|
||||
.with_reason("no .json, .sql, or .lnav files were found")
|
||||
.move();
|
||||
lnav::console::print(stderr, um);
|
||||
return false;
|
||||
}
|
||||
@ -364,7 +366,8 @@ install_from_git(const std::string& repo)
|
||||
auto um = lnav::console::user_message::ok(
|
||||
attr_line_t("installed lnav repo at: ")
|
||||
.append(lnav::roles::file(local_configs_path.string())))
|
||||
.with_note(notes);
|
||||
.with_note(notes)
|
||||
.move();
|
||||
lnav::console::print(stdout, um);
|
||||
|
||||
return true;
|
||||
@ -2056,7 +2059,8 @@ reload_config(std::vector<lnav::console::user_message>& errors)
|
||||
um.um_message
|
||||
= attr_line_t()
|
||||
.append("missing value for property ")
|
||||
.append_quoted(lnav::roles::symbol(path));
|
||||
.append_quoted(lnav::roles::symbol(path))
|
||||
.move();
|
||||
}
|
||||
|
||||
errors.emplace_back(um);
|
||||
|
@ -80,7 +80,8 @@ struct expressions : public lnav_config_listener {
|
||||
auto sql_al = attr_line_t(pair.second.we_expr)
|
||||
.with_attr_for_all(SA_PREFORMATTED.value())
|
||||
.with_attr_for_all(
|
||||
VC_ROLE.value(role_t::VCR_QUOTED_CODE));
|
||||
VC_ROLE.value(role_t::VCR_QUOTED_CODE))
|
||||
.move();
|
||||
readline_sqlite_highlighter(sql_al, std::nullopt);
|
||||
intern_string_t watch_expr_path = intern_string::lookup(
|
||||
fmt::format(FMT_STRING("/log/watch-expressions/{}/expr"),
|
||||
@ -91,7 +92,8 @@ struct expressions : public lnav_config_listener {
|
||||
auto um = lnav::console::user_message::error(
|
||||
"SQL expression is invalid")
|
||||
.with_reason(sqlite3_errmsg(lnav_db))
|
||||
.with_snippet(snippet);
|
||||
.with_snippet(snippet)
|
||||
.move();
|
||||
|
||||
reporter(&pair.second.we_expr, um);
|
||||
continue;
|
||||
|
@ -1287,8 +1287,8 @@ load_format_file(const std::filesystem::path& filename,
|
||||
.append(
|
||||
fmt::format(FMT_STRING(" \"$schema\": \"{}\","),
|
||||
*SUPPORTED_FORMAT_SCHEMAS.begin()))
|
||||
.with_attr_for_all(
|
||||
VC_ROLE.value(role_t::VCR_QUOTED_CODE));
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_QUOTED_CODE))
|
||||
.move();
|
||||
|
||||
errors.emplace_back(
|
||||
lnav::console::user_message::warning(
|
||||
@ -1588,14 +1588,14 @@ static void
|
||||
find_format_in_path(const std::filesystem::path& path,
|
||||
available_scripts& scripts)
|
||||
{
|
||||
for (auto format_path :
|
||||
for (const auto& format_path :
|
||||
{path / "formats/*/*.lnav", path / "configs/*/*.lnav"})
|
||||
{
|
||||
static_root_mem<glob_t, globfree> gl;
|
||||
|
||||
log_debug("Searching for script in path: %s", format_path.c_str());
|
||||
if (glob(format_path.c_str(), 0, nullptr, gl.inout()) == 0) {
|
||||
for (int lpc = 0; lpc < (int) gl->gl_pathc; lpc++) {
|
||||
for (size_t lpc = 0; lpc < gl->gl_pathc; lpc++) {
|
||||
const char* filename = basename(gl->gl_pathv[lpc]);
|
||||
auto script_name = std::string(filename, strlen(filename) - 5);
|
||||
struct script_metadata meta;
|
||||
@ -1605,7 +1605,7 @@ find_format_in_path(const std::filesystem::path& path,
|
||||
extract_metadata_from_file(meta);
|
||||
scripts.as_scripts[script_name].push_back(meta);
|
||||
|
||||
log_debug(" found script: %s", meta.sm_path.c_str());
|
||||
log_info(" found script: %s", meta.sm_path.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -90,7 +90,8 @@ md2attr_line::flush_footnotes()
|
||||
.append(lnav::roles::footnote_text(
|
||||
fmt::format(FMT_STRING("[{}] - "), index)))
|
||||
.append(foot.pad_to(longest_foot))
|
||||
.with_attr_for_all(SA_PREFORMATTED.value());
|
||||
.with_attr_for_all(SA_PREFORMATTED.value())
|
||||
.move();
|
||||
|
||||
block_text.append(footline).append("\n");
|
||||
}
|
||||
@ -165,7 +166,8 @@ md2attr_line::leave_block(const md4cpp::event_handler::block& bl)
|
||||
} else if (bl.is<block_hr>()) {
|
||||
block_text = attr_line_t()
|
||||
.append(lnav::roles::hr(repeat("\u2501", 70)))
|
||||
.with_attr_for_all(SA_PREFORMATTED.value());
|
||||
.with_attr_for_all(SA_PREFORMATTED.value())
|
||||
.move();
|
||||
last_block.append("\n").append(block_text).append("\n");
|
||||
} else if (bl.is<MD_BLOCK_UL_DETAIL*>() || bl.is<MD_BLOCK_OL_DETAIL*>()) {
|
||||
this->ml_list_stack.pop_back();
|
||||
@ -287,7 +289,7 @@ md2attr_line::leave_block(const md4cpp::event_handler::block& bl)
|
||||
new_block_text.append(line).append("\n");
|
||||
}
|
||||
}
|
||||
block_text = new_block_text;
|
||||
block_text = new_block_text.move();
|
||||
}
|
||||
|
||||
auto code_lines = block_text.rtrim().split_lines();
|
||||
@ -753,10 +755,11 @@ md2attr_line::to_attr_line(const pugi::xml_node& doc)
|
||||
auto href
|
||||
= attr_line_t()
|
||||
.append(lnav::roles::hyperlink(src_href.value()))
|
||||
.append(" ");
|
||||
href.with_attr_for_all(
|
||||
VC_ROLE.value(role_t::VCR_FOOTNOTE_TEXT));
|
||||
href.with_attr_for_all(SA_PREFORMATTED.value());
|
||||
.append(" ")
|
||||
.with_attr_for_all(
|
||||
VC_ROLE.value(role_t::VCR_FOOTNOTE_TEXT))
|
||||
.with_attr_for_all(SA_PREFORMATTED.value())
|
||||
.move();
|
||||
this->ml_footnotes.emplace_back(href);
|
||||
} else {
|
||||
retval.append(link_label);
|
||||
@ -1080,10 +1083,12 @@ md2attr_line::append_url_footnote(std::string href_str)
|
||||
href_str = fmt::format(FMT_STRING("file://{}"), link_path.string());
|
||||
}
|
||||
|
||||
auto href
|
||||
= attr_line_t().append(lnav::roles::hyperlink(href_str)).append(" ");
|
||||
href.with_attr_for_all(VC_ROLE.value(role_t::VCR_FOOTNOTE_TEXT));
|
||||
href.with_attr_for_all(SA_PREFORMATTED.value());
|
||||
auto href = attr_line_t()
|
||||
.append(lnav::roles::hyperlink(href_str))
|
||||
.append(" ")
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_FOOTNOTE_TEXT))
|
||||
.with_attr_for_all(SA_PREFORMATTED.value())
|
||||
.move();
|
||||
this->ml_footnotes.emplace_back(href);
|
||||
|
||||
return href_str;
|
||||
|
@ -749,8 +749,8 @@ cleanup()
|
||||
{
|
||||
(void) std::async(std::launch::async, []() {
|
||||
const auto& cfg = injector::get<const config&>();
|
||||
auto now = std::filesystem::file_time_type::clock::now();
|
||||
auto cache_path = storage_path();
|
||||
const auto now = std::filesystem::file_time_type::clock::now();
|
||||
const auto& cache_path = storage_path();
|
||||
std::vector<std::filesystem::path> to_remove;
|
||||
|
||||
for (const auto& cache_subdir :
|
||||
|
@ -514,9 +514,10 @@ rcjFilter(sqlite3_vtab_cursor* pVtabCursor,
|
||||
flags_json);
|
||||
|
||||
if (parse_res.isErr()) {
|
||||
auto um = lnav::console::user_message::error(
|
||||
"unable to parse flags")
|
||||
.with_reason(parse_res.unwrapErr()[0]);
|
||||
const auto um = lnav::console::user_message::error(
|
||||
"unable to parse flags")
|
||||
.with_reason(parse_res.unwrapErr()[0])
|
||||
.move();
|
||||
|
||||
set_vtable_errmsg(pVtabCursor->pVtab, um);
|
||||
return SQLITE_ERROR;
|
||||
|
@ -105,7 +105,8 @@ public:
|
||||
std::vector<vis_line_t> fss_lines;
|
||||
};
|
||||
|
||||
log_spectro_value_source::log_spectro_value_source(intern_string_t colname)
|
||||
log_spectro_value_source::
|
||||
log_spectro_value_source(intern_string_t colname)
|
||||
: lsvs_colname(colname)
|
||||
{
|
||||
this->update_stats();
|
||||
@ -330,7 +331,8 @@ log_spectro_value_source::spectro_mark(textview_curses& tc,
|
||||
}
|
||||
}
|
||||
|
||||
db_spectro_value_source::db_spectro_value_source(std::string colname)
|
||||
db_spectro_value_source::
|
||||
db_spectro_value_source(std::string colname)
|
||||
: dsvs_colname(std::move(colname))
|
||||
{
|
||||
this->update_stats();
|
||||
@ -354,7 +356,8 @@ db_spectro_value_source::update_stats()
|
||||
.append(" ")
|
||||
.append("log_time"_variable)
|
||||
.append(" ")
|
||||
.append("ASC"_keyword);
|
||||
.append("ASC"_keyword)
|
||||
.move();
|
||||
|
||||
this->dsvs_error_msg
|
||||
= lnav::console::user_message::error(
|
||||
@ -378,7 +381,8 @@ db_spectro_value_source::update_stats()
|
||||
.append_quoted(order_by_help)
|
||||
.append(" clause to your ")
|
||||
.append("SELECT"_keyword)
|
||||
.append(" statement"));
|
||||
.append(" statement"))
|
||||
.move();
|
||||
} else {
|
||||
this->dsvs_error_msg
|
||||
= lnav::console::user_message::error(
|
||||
@ -400,7 +404,8 @@ db_spectro_value_source::update_stats()
|
||||
.append(" statement. Use an ")
|
||||
.append("AS"_keyword)
|
||||
.append(
|
||||
" directive to alias a computed timestamp"));
|
||||
" directive to alias a computed timestamp"))
|
||||
.move();
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -412,7 +417,8 @@ db_spectro_value_source::update_stats()
|
||||
.with_reason(attr_line_t("unknown column -- ")
|
||||
.append_quoted(lnav::roles::variable(
|
||||
this->dsvs_colname)))
|
||||
.with_help("Expecting a numeric column to visualize");
|
||||
.with_help("Expecting a numeric column to visualize")
|
||||
.move();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -424,7 +430,8 @@ db_spectro_value_source::update_stats()
|
||||
.append_quoted(lnav::roles::variable(
|
||||
this->dsvs_colname))
|
||||
.append(" is not a numeric column"))
|
||||
.with_help("Only numeric columns can be visualized");
|
||||
.with_help("Only numeric columns can be visualized")
|
||||
.move();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -432,7 +439,8 @@ db_spectro_value_source::update_stats()
|
||||
this->dsvs_error_msg
|
||||
= lnav::console::user_message::error(
|
||||
"Cannot generate spectrogram for database results")
|
||||
.with_reason("Result set is empty");
|
||||
.with_reason("Result set is empty")
|
||||
.move();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <filesystem>
|
||||
#include <map>
|
||||
|
||||
#include "static_file_vtab.hh"
|
||||
@ -37,7 +38,6 @@
|
||||
#include "base/fs_util.hh"
|
||||
#include "base/lnav_log.hh"
|
||||
#include "config.h"
|
||||
#include <filesystem>
|
||||
#include "lnav.hh"
|
||||
#include "vtab_module.hh"
|
||||
|
||||
@ -232,7 +232,8 @@ sfvt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
|
||||
if (read_res.isErr()) {
|
||||
auto um = lnav::console::user_message::error(
|
||||
"unable to read static file")
|
||||
.with_reason(read_res.unwrapErr());
|
||||
.with_reason(read_res.unwrapErr())
|
||||
.move();
|
||||
|
||||
to_sqlite(ctx, um);
|
||||
} else {
|
||||
|
@ -79,7 +79,8 @@ text_overlay_menu::list_overlay_menu(const listview_curses& lv, vis_line_t row)
|
||||
= attr_line_t(" Link: ")
|
||||
.append(lnav::roles::table_header(sti.sti_href))
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_STATUS_INFO))
|
||||
.with_attr_for_all(VC_STYLE.value(ta));
|
||||
.with_attr_for_all(VC_STYLE.value(ta))
|
||||
.move();
|
||||
retval.emplace_back(href_al);
|
||||
menu_line += 1_vl;
|
||||
}
|
||||
|
@ -1056,16 +1056,16 @@ execute_examples()
|
||||
|
||||
auto old_width = dls.dls_max_column_width;
|
||||
dls.dls_max_column_width = 15;
|
||||
for (auto help_pair : sqlite_function_help) {
|
||||
for (const auto& help_pair : sqlite_function_help) {
|
||||
execute_example(*help_pair.second);
|
||||
}
|
||||
for (auto help_pair : lnav::sql::prql_functions) {
|
||||
for (const auto& help_pair : lnav::sql::prql_functions) {
|
||||
if (help_pair.second->ht_context != help_context_t::HC_PRQL_FUNCTION) {
|
||||
continue;
|
||||
}
|
||||
execute_example(*help_pair.second);
|
||||
}
|
||||
for (auto cmd_pair : *sql_cmd_map) {
|
||||
for (const auto& cmd_pair : *sql_cmd_map) {
|
||||
if (cmd_pair.second->c_help.ht_context
|
||||
!= help_context_t::HC_PRQL_TRANSFORM
|
||||
&& cmd_pair.second->c_help.ht_context
|
||||
|
@ -588,7 +588,8 @@ CREATE TABLE lnav_views (
|
||||
.append(" value"))
|
||||
.with_reason(
|
||||
attr_line_t("Unrecognized time value: ")
|
||||
.append(lnav::roles::string(top_time)));
|
||||
.append(lnav::roles::string(top_time)))
|
||||
.move();
|
||||
set_vtable_errmsg(tab, um);
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
@ -620,7 +621,8 @@ CREATE TABLE lnav_views (
|
||||
.append(" value"))
|
||||
.with_reason(attr_line_t("Unknown text file: ")
|
||||
.append(lnav::roles::file(
|
||||
tlm.tlm_file.value())));
|
||||
tlm.tlm_file.value())))
|
||||
.move();
|
||||
set_vtable_errmsg(tab, um);
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
@ -646,7 +648,8 @@ CREATE TABLE lnav_views (
|
||||
.append(" value"))
|
||||
.with_reason(
|
||||
attr_line_t("Unknown anchor: ")
|
||||
.append(lnav::roles::symbol(req_anchor)));
|
||||
.append(lnav::roles::symbol(req_anchor)))
|
||||
.move();
|
||||
set_vtable_errmsg(tab, um);
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
|
@ -317,7 +317,8 @@ rcFilter(sqlite3_vtab_cursor* pVtabCursor,
|
||||
|
||||
auto attr_xmldoc
|
||||
= attr_line_t(pCur->c_value)
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_QUOTED_CODE));
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_QUOTED_CODE))
|
||||
.move();
|
||||
auto um = lnav::console::user_message::error("Invalid XML document")
|
||||
.with_reason(parse_res.description())
|
||||
.with_snippet(
|
||||
@ -325,7 +326,8 @@ rcFilter(sqlite3_vtab_cursor* pVtabCursor,
|
||||
ARG1,
|
||||
attr_xmldoc,
|
||||
parse_res.offset,
|
||||
parse_res.description()));
|
||||
parse_res.description()))
|
||||
.move();
|
||||
set_vtable_errmsg(pVtabCursor->pVtab, um);
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
@ -338,12 +340,14 @@ rcFilter(sqlite3_vtab_cursor* pVtabCursor,
|
||||
const auto& res = pCur->c_query.result();
|
||||
auto attr_xpath
|
||||
= attr_line_t(pCur->c_xpath)
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_QUOTED_CODE));
|
||||
.with_attr_for_all(VC_ROLE.value(role_t::VCR_QUOTED_CODE))
|
||||
.move();
|
||||
auto um = lnav::console::user_message::error("Invalid XPath expression")
|
||||
.with_reason(res.description())
|
||||
.with_snippet(
|
||||
lnav::console::snippet::from_content_with_offset(
|
||||
ARG0, attr_xpath, res.offset, res.description()));
|
||||
ARG0, attr_xpath, res.offset, res.description()))
|
||||
.move();
|
||||
set_vtable_errmsg(pVtabCursor->pVtab, um);
|
||||
return SQLITE_ERROR;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user