diff --git a/mu/mu-cmd-find.cc b/mu/mu-cmd-find.cc index 898244fa..5eee98f9 100644 --- a/mu/mu-cmd-find.cc +++ b/mu/mu-cmd-find.cc @@ -372,12 +372,10 @@ static bool output_sexp(const Option& msg, const OutputInfo& info, const MuConfig* opts, GError** err) { if (msg) { - - if (const auto sexp{msg->cached_sexp()}; !sexp.empty()) - fputs(sexp.c_str(), stdout); + if (const auto sexp{msg->sexp()}; !sexp.empty()) + fputs(sexp.to_string().c_str(), stdout); else - fputs(msg->to_sexp().to_sexp_string().c_str(), stdout); - + fputs(msg->sexp().to_string().c_str(), stdout); fputs("\n", stdout); } @@ -401,7 +399,7 @@ output_json(const Option& msg, const OutputInfo& info, const MuConfig* return true; g_print("%s%s\n", - msg->to_sexp().to_json_string().c_str(), + msg->sexp().to_json_string().c_str(), info.last ? "" : ","); return true; diff --git a/mu/mu-cmd-server.cc b/mu/mu-cmd-server.cc index 779b9cb3..7028ee4e 100644 --- a/mu/mu-cmd-server.cc +++ b/mu/mu-cmd-server.cc @@ -31,7 +31,7 @@ #include "mu-server.hh" #include "utils/mu-utils.hh" -#include "utils/mu-command-parser.hh" +#include "utils/mu-command-handler.hh" #include "utils/mu-readline.hh" using namespace Mu; @@ -82,15 +82,15 @@ cookie(size_t n) } static void -output_sexp_stdout(Sexp&& sexp, Server::OutputFlags flags) +output_sexp_stdout(const Sexp& sexp, Server::OutputFlags flags) { /* if requested, insert \n between list elements; note: * is _not_ inherited by children */ + Sexp::Format fopts{}; if (any_of(flags & Server::OutputFlags::SplitList)) - sexp.formatting_opts |= Sexp::FormattingOptions::SplitList; - - const auto str{sexp.to_sexp_string()}; + fopts |= Sexp::Format::SplitList; + const auto str{sexp.to_string(fopts)}; cookie(str.size() + 1); if (G_UNLIKELY(::puts(str.c_str()) < 0)) { g_critical("failed to write output '%s'", str.c_str()); @@ -104,12 +104,8 @@ output_sexp_stdout(Sexp&& sexp, Server::OutputFlags flags) static void report_error(const Mu::Error& err) noexcept { - Sexp::List e; - - e.add_prop(":error", Sexp::make_number(static_cast(err.code()))); - e.add_prop(":message", Sexp::make_string(err.what())); - - output_sexp_stdout(Sexp::make_list(std::move(e)), + output_sexp_stdout(Sexp(":error"_sym, static_cast(err.code()), + ":message"_sym, err.what()), Server::OutputFlags::Flush); } diff --git a/mu/mu-cmd.cc b/mu/mu-cmd.cc index a171389f..1b6bc36a 100644 --- a/mu/mu-cmd.cc +++ b/mu/mu-cmd.cc @@ -51,7 +51,7 @@ using namespace Mu; static Mu::Result view_msg_sexp(const Message& message, const MuConfig* opts) { - ::fputs(message.to_sexp().to_sexp_string().c_str(), stdout); + ::fputs(message.sexp().to_string().c_str(), stdout); ::fputs("\n", stdout); return Ok();