PuTTYは、何故リモート端末のログインユーザ、カレントディレクトリ等をタイトルバーに表示できるのか?
PuTTYは、何故リモート端末のログインユーザ、カレントディレクトリ等をタイトルバーに表示できるのか?
ということをふと疑問に思った。
しかも、端末に対して
$ cd /var/www
とかやると、タイトルバーの表示もリアルタイムに追従してくれる。
割と気になったのでちょっと調べてみた。
Window Title 変更箇所 window.c
void set_title(void *frontend, char *title) { sfree(window_name); window_name = snewn(1 + strlen(title), char); strcpy(window_name, title); if (cfg.win_name_always || !IsIconic(hwnd)) SetWindowText(hwnd, title); }
そして、呼び出し元がこれ
/* * Process an OSC sequence: set window title or icon name. */ static void do_osc(Terminal *term) { ...... /* fall through: parameter 0 means set both */ case 2: case 21: if (!term->cfg.no_remote_wintitle) set_title(term->frontend, term->osc_string); // <= ここ break; ....... } 更にコールスタックをたどっていくと。。。 telnet.c do_telnet_read() >|c| c_write(telnet, outbuf, outbuflen);
Windowタイトル情報って、端末プロトコルに組み込まれてる?
ソースコメントに OSCシーケンスと書かれているので、おそらくそう呼ばれる何かなのでしょうちょっと
ていうか常識なのかも。
google でざっと検索してみましたがそれっぽい情報はなさげ
とりあえず今日はここまで。