diff --git a/fnl/conjure/client/guile/socket.fnl b/fnl/conjure/client/guile/socket.fnl index ac63eb21..474303a9 100644 --- a/fnl/conjure/client/guile/socket.fnl +++ b/fnl/conjure/client/guile/socket.fnl @@ -115,22 +115,28 @@ (defn- parse-guile-result [s] (let [prompt (s:find "scheme@%([%w%-%s]+%)> ")] - (if prompt - (let [(ind1 ind2 result) (s:find "%$%d+ = ([^\n]+)\n")] - (if result - {:done? true - :error? false - :result result} - {:done? true - :error? false - :result (s:sub 1 (- prompt 1))})) - (if (s:find "scheme@%([%w%-%s]+%) %[%d+%]>") + (if + prompt + (let [(ind1 _ result) (s:find "%$%d+ = ([^\n]+)\n") + stray-output (s:sub + 1 + (- (if result ind1 prompt) 1))] + (when (> (length stray-output) 0) + (log.append + (-> (text.trim-last-newline stray-output) + (text.prefixed-lines "; (out) ")))) {:done? true - :error? true - :result nil} - {:done? false :error? false - :result s})))) + :result result}) + + (s:find "scheme@%([%w%-%s]+%) %[%d+%]>") + {:done? true + :error? true + :result nil} + + {:done? false + :error? false + :result s}))) (defn connect [opts] (disconnect) diff --git a/fnl/conjure/sponsors.fnl b/fnl/conjure/sponsors.fnl index 756d9371..743bad08 100644 --- a/fnl/conjure/sponsors.fnl +++ b/fnl/conjure/sponsors.fnl @@ -1,5 +1,4 @@ [ ;; Generated by: make sponsors -"AbhinavOmprakash" "Akeboshiwind" "aleksandersumowski" "AlexChalk" diff --git a/lua/conjure/client/guile/socket.lua b/lua/conjure/client/guile/socket.lua index b7e34336..1ebcc50d 100644 --- a/lua/conjure/client/guile/socket.lua +++ b/lua/conjure/client/guile/socket.lua @@ -156,18 +156,25 @@ _2amodule_2a["disconnect"] = disconnect local function parse_guile_result(s) local prompt = s:find("scheme@%([%w%-%s]+%)> ") if prompt then - local ind1, ind2, result = s:find("%$%d+ = ([^\n]+)\n") - if result then - return {["done?"] = true, result = result, ["error?"] = false} - else - return {["done?"] = true, result = s:sub(1, (prompt - 1)), ["error?"] = false} + local ind1, _0, result = s:find("%$%d+ = ([^\n]+)\n") + local stray_output + local function _21_() + if result then + return ind1 + else + return prompt + end end - else - if s:find("scheme@%([%w%-%s]+%) %[%d+%]>") then - return {["done?"] = true, ["error?"] = true, result = nil} + stray_output = s:sub(1, (_21_() - 1)) + if (#stray_output > 0) then + log.append(text["prefixed-lines"](text["trim-last-newline"](stray_output), "; (out) ")) else - return {result = s, ["done?"] = false, ["error?"] = false} end + return {["done?"] = true, result = result, ["error?"] = false} + elseif s:find("scheme@%([%w%-%s]+%) %[%d+%]>") then + return {["done?"] = true, ["error?"] = true, result = nil} + else + return {result = s, ["done?"] = false, ["error?"] = false} end end _2amodule_locals_2a["parse-guile-result"] = parse_guile_result diff --git a/lua/conjure/sponsors.lua b/lua/conjure/sponsors.lua index 4dec0e77..edc4d6bc 100644 --- a/lua/conjure/sponsors.lua +++ b/lua/conjure/sponsors.lua @@ -1,2 +1,2 @@ local _2afile_2a = "fnl/conjure/sponsors.fnl" -return {"AbhinavOmprakash", "Akeboshiwind", "aleksandersumowski", "AlexChalk", "alloy-d", "anthony-khong", "axvr", "beanpuppy", "BerkeleyTrue", "campbellr", "daveyarwood", "davidmh", "dharrigan", "djwhitt", "edlandm", "extradosages", "frenchy64", "fuadsaud", "harrisoncramer", "harrygallagher4", "jacobobryant", "jcpsantiago", "jkrasnay", "ketansrivastav", "kevinkrouse", "lucasdf", "lucaslollobrigida", "martinklepsch", "NickCellino", "nickcernis", "orestis", "penryu", "pyrmont", "qnkhuat", "rafaeldelboni", "rbatista", "rgm", "stelcodes", "thiru", "TimoKramer", "trev-dev", "valsen", "victorb", "zhming0"} \ No newline at end of file +return {"Akeboshiwind", "aleksandersumowski", "AlexChalk", "alloy-d", "anthony-khong", "axvr", "beanpuppy", "BerkeleyTrue", "campbellr", "daveyarwood", "davidmh", "dharrigan", "djwhitt", "edlandm", "extradosages", "frenchy64", "fuadsaud", "harrisoncramer", "harrygallagher4", "jacobobryant", "jcpsantiago", "jkrasnay", "ketansrivastav", "kevinkrouse", "lucasdf", "lucaslollobrigida", "martinklepsch", "NickCellino", "nickcernis", "orestis", "penryu", "pyrmont", "qnkhuat", "rafaeldelboni", "rbatista", "rgm", "stelcodes", "thiru", "TimoKramer", "trev-dev", "valsen", "victorb", "zhming0"} \ No newline at end of file