@verb #1492:"do_pick" this none this rxdo #60 @program #1492:"do_pick" this none this "do_pick(host, port, path, string) -- take parsed output & interact with user as appropriate." string = args[4] if (!string || index("1?", type = string[1])) "menu" this:set_pointer(args, @this.stack) elseif (type == "7") player:tell("Search for what? Enter search line or @abort:") search = read() if (search != "@abort") this:announce_op("%N % for ", search, " on %t.") this:set_pointer({args[1], args[2], args[3] + " " + search, args[4]}, @this.stack) else this:busy(0) this:announce_op("%N % not to search.") endif elseif (type == "3") this:busy(0) this:announce_op("%N chose an error line.") elseif (type == "0") "slates can point at text nodes" this:set_pointer(args, @this.stack) elseif (type == "2") search = $command_utils:read("one of 'name=' 'phone=' 'email='") if (!match(search, "[a-z]+=[a-z0-9@-]+")) this:busy(0) player:tell(search == "@abort" ? "No search." | "Invalid query: " + search) return endif this:announce_op("%N % for ", search, " on %t.") this:set_pointer({args[1], args[2], args[3] + " query " + search, args[4]}, @this.stack) elseif ($object_utils:has_property(player, "gopher_local") && player.gopher_local) this:busy(0) notify(player, tostr("#$# gopher ", args[1], " ", args[2], " ", args[4], " ", args[3])) else this:busy(0) this:announce_op("Type ", type, " (", $gopher:type(type), ") gopher requests not implemented.") if (type == "8") player:tell("**** telnet ", args[1], args[2] in {23, 0} ? "" | " " + tostr(args[2])) if (args[3]) player:tell(" log in as: ", args[3]) endif endif endif .