!747 m { static S answererID = "#1000887"; static S defaultQuestion = ""; static S q, answer; p { if (args.length != 0) answererID = smartJoin(args); thread { // because slte must be called in non-awt thread while (true) { S text; if (answer != null) { text = q + "\n" + formatSnippetID(answererID) + ": " + answer; defaultQuestion = q; } else text = "Hi! What's your question for " + formatSnippetID(answererID) + "?"; q = slte(text, defaultQuestion); if (q == null) { print("abort"); killMyself(); } else { print("Answering: " + q); try { Class prog = hotwire(answererID); set(prog, "question", q); callMain(prog); answer = (S) get(prog, "answer"); } catch (Throwable e) { popup(e); } } } } } }