Skip to content

Commit fcdcdb1

Browse files
committed
[prompt] fix issue with misnamed format
1 parent a5146e6 commit fcdcdb1

3 files changed

Lines changed: 31 additions & 16 deletions

File tree

src/lnav.prompt.cc

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,14 @@ prompt::refresh_sql_expr_completions(textview_curses& tc)
268268
if (attr_opt) {
269269
auto format_name = attr_opt->get();
270270
auto format = log_format::find_root_format(format_name.c_str());
271-
for (const auto& lvm : format->get_value_metadata()) {
272-
auto var_name
273-
= fmt::format(FMT_STRING(":{}"), lvm.lvm_name.c_str());
274-
this->insert_sql_completion(var_name, sql_field_var_t{});
275-
this->insert_sql_completion(lvm.lvm_name.to_string(),
276-
sql_format_column_t{});
271+
if (format) {
272+
for (const auto& lvm : format->get_value_metadata()) {
273+
auto var_name
274+
= fmt::format(FMT_STRING(":{}"), lvm.lvm_name.c_str());
275+
this->insert_sql_completion(var_name, sql_field_var_t{});
276+
this->insert_sql_completion(lvm.lvm_name.to_string(),
277+
sql_format_column_t{});
278+
}
277279
}
278280
}
279281
return std::nullopt;
@@ -1089,9 +1091,13 @@ prompt::get_cmd_parameter_completion(textview_curses& tc,
10891091
auto format_name = attr_opt->get();
10901092
auto format = log_format::find_root_format(
10911093
format_name.c_str());
1092-
for (const auto& lvm : format->get_value_metadata())
1093-
{
1094-
field_names.emplace(lvm.lvm_name.to_string());
1094+
if (format) {
1095+
for (const auto& lvm :
1096+
format->get_value_metadata())
1097+
{
1098+
field_names.emplace(
1099+
lvm.lvm_name.to_string());
1100+
}
10951101
}
10961102
}
10971103
return std::nullopt;
@@ -1131,11 +1137,14 @@ prompt::get_cmd_parameter_completion(textview_curses& tc,
11311137
auto format_name = attr_opt->get();
11321138
auto format = log_format::find_root_format(
11331139
format_name.c_str());
1134-
for (const auto& lvm : format->get_value_metadata())
1135-
{
1136-
if (lvm.is_numeric()) {
1137-
field_names.emplace(
1138-
lvm.lvm_name.to_string());
1140+
if (format) {
1141+
for (const auto& lvm :
1142+
format->get_value_metadata())
1143+
{
1144+
if (lvm.is_numeric()) {
1145+
field_names.emplace(
1146+
lvm.lvm_name.to_string());
1147+
}
11391148
}
11401149
}
11411150
}

src/log_format_impls.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1243,7 +1243,7 @@ class w3c_log_format : public log_format {
12431243

12441244
const intern_string_t get_name() const override
12451245
{
1246-
static const intern_string_t name(intern_string::lookup("w3c"));
1246+
static const intern_string_t name(intern_string::lookup("w3c_log"));
12471247

12481248
return this->wlf_format_name.empty() ? name : this->wlf_format_name;
12491249
}

src/shlex.cc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,13 @@ shlex::escape(std::string s)
4545
{
4646
static const auto SH_CHARS = lnav::pcre2pp::code::from_const("'");
4747

48-
return SH_CHARS.replace(s, "\\'");
48+
return SH_CHARS.replace(s,
49+
#if defined(__MSYS__)
50+
"`'"
51+
#else
52+
"\\'"
53+
#endif
54+
);
4955
}
5056

5157
attr_line_t

0 commit comments

Comments
 (0)