📄 remote.vtc
字号:
func Connect(addr, port) { return connect(addr, port) ? : perror("connect"); }func cur_world() { return cur_rmt ? obj(cur_rmt) : NULL; }func reset_prompt() { prompt = (cur_rmt && cur_rmt->rprompt) ? cur_rmt->rprompt : "";}func dispatch(line / rmt, iskbd) { rmt ?:= cur_rmt; if (!rmt) return; (*rmt->type->outbound)(rmt, line, iskbd);}func receive(line) { pass(cur_rmt, line); }func log_string(r) { return (r && r->logfile) ? bprintf("[Log: %s]", file_name(r->logfile)) : ""; }func log(name / rmt) [fp, oldstr] { fp = fopen(name, "a"); if (!fp) return printf("Can't open file %s\n", name); rmt ?:= cur_rmt; clear_log(rmt); oldstr = log_string(rmt); rmt->logfile = fp; if (rmt_win(rmt)) change_status(rmt_win(rmt), oldstr, log_string(rmt));}func clear_log(/ rmt) { rmt ?:= cur_rmt; if (rmt_win(rmt)) change_status(rmt_win(rmt), log_string(rmt), ""); if (rmt->logfile) fclose(rmt->logfile);}func Log(s) { if (!cur_rmt) output("Cannot log without remote connection.\n"); else if (!stricmp(s, "off")) clear_log(); else if (*s) log(s); else if (cur_rmt->logfile) printf("Currently logging to %s\n", file_name(cur_rmt->logfile)); else printf("Not currently logging.\n");}func world(world / login, win) [rmt] { win ?:= cur_win; for (rmt = head(T_RMT); rmt && obj(rmt) != world; rmt = next(rmt)); if (rmt) { if (rmt_win(rmt) && rmt_win(rmt) != win) std_display(rmt_win(rmt), NULL); std_display(win, rmt); return rmt; } rmt = Connect(world->addr, world->port); if (!rmt) return; world->rmt = rmt; set_obj(rmt, world); set_netread(rmt, world->type->netread); set_promptread(rmt, world->type->promptread); (*world->type->init)(world, rmt, login); if (win) std_display(win, rmt); return rmt;}func World(s) [nologin, world] { if (*s == '-') { nologin = 1; s++; } return world(Find_world(s), !nologin);}func Dc() { if (cur_rmt) disconnect(cur_rmt); else output("No remote.\n"); }func Wrapspace(s) { wrapspace = atoi(s); }add_cmd("log", -1, .Log, "/log [off|<filename>]");add_cmd("world", 1, .World, "/world <worldname>");add_cmd("dc", 0, .Dc, "/dc");add_cmd("wrapspace", 1, .Wrapspace, "/wrapspace <spaces>");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -