Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
<li>Adds DEC Technical Character Set with full 94-position Unicode mapping (Greek letters, math symbols, bracket pieces, arrows)</li>
<li>Fixes VT parser: DCS_Param to DCS_Intermediate transition now correctly collects intermediate bytes</li>
<li>Removes ScreenBase class — merges into Screen, eliminating unnecessary virtual dispatch</li>
<li>Fixes loading of optional fields in the config file (#1940)</li>
</ul>
</description>
</release>
Expand Down
16 changes: 8 additions & 8 deletions src/contour/Config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2027,13 +2027,13 @@ std::optional<actions::Action> YAMLConfigReader::parseAction(YAML::Node const& n
auto actionOpt = actions::fromString(actionName);
if (!actionOpt)
{
logger()("Unknown action '{}'.", actionNode["action"].as<std::string>());
logger()("Unknown action '{}'.", actionName);
return std::nullopt;
}
auto action = actionOpt.value();
if (holds_alternative<actions::ChangeProfile>(action))
{
if (auto name = node["name"]; name.IsScalar())
if (auto name = node["name"]; name && name.IsScalar())
{
return actions::ChangeProfile { actionNode.as<std::string>() };
}
Expand All @@ -2043,15 +2043,15 @@ std::optional<actions::Action> YAMLConfigReader::parseAction(YAML::Node const& n

if (holds_alternative<actions::MoveTabTo>(action))
{
if (auto position = node["position"]; position.IsScalar())
if (auto position = node["position"]; position && position.IsScalar())
return actions::MoveTabTo { position.as<int>() };
else
return std::nullopt;
}

if (holds_alternative<actions::SwitchToTab>(action))
{
if (auto position = node["position"]; position.IsScalar())
if (auto position = node["position"]; position && position.IsScalar())
{
return actions::SwitchToTab { position.as<int>() };
}
Expand All @@ -2071,7 +2071,7 @@ std::optional<actions::Action> YAMLConfigReader::parseAction(YAML::Node const& n

if (holds_alternative<actions::ReloadConfig>(action))
{
if (auto profileName = node["profile"]; profileName.IsScalar())
if (auto profileName = node["profile"]; profileName && profileName.IsScalar())
{
return actions::ReloadConfig { profileName.as<std::string>() };
}
Expand All @@ -2081,7 +2081,7 @@ std::optional<actions::Action> YAMLConfigReader::parseAction(YAML::Node const& n

if (holds_alternative<actions::SendChars>(action))
{
if (auto chars = node["chars"]; chars.IsScalar())
if (auto chars = node["chars"]; chars && chars.IsScalar())
{
return actions::SendChars { crispy::unescape(chars.as<std::string>()) };
}
Expand Down Expand Up @@ -2133,7 +2133,7 @@ std::optional<actions::Action> YAMLConfigReader::parseAction(YAML::Node const& n

if (holds_alternative<actions::WriteScreen>(action))
{
if (auto chars = node["chars"]; chars.IsScalar())
if (auto chars = node["chars"]; chars && chars.IsScalar())
{
return actions::WriteScreen { chars.as<std::string>() };
}
Expand All @@ -2143,7 +2143,7 @@ std::optional<actions::Action> YAMLConfigReader::parseAction(YAML::Node const& n

if (holds_alternative<actions::CreateSelection>(action))
{
if (auto delimiters = node["delimiters"]; delimiters.IsScalar())
if (auto delimiters = node["delimiters"]; delimiters && delimiters.IsScalar())
{
return actions::CreateSelection { delimiters.as<std::string>() };
}
Expand Down
Loading