Mitsukiの魔法実験室

Mitsuki's Magic Laboratory
Since 2002.09.14

tcsh と $HOME と空白の罠

Posted at 2007/06/14 17:56 in Cygwin

 なんとなく ruby/tk が使いたくなって迂闊に Cygwin をアップデートしたら、tcsh の起動で

if: Expression Syntax.
などというエラーが出て起動スクリプトが止まってしまうように。なんでやねん……とおもって調べてみると、/etc/profile.d/complete.tcsh の 42 行目

41:    foreach f ("$HOME/.hosts" /usr/local/etc/csh.hosts "$HOME/.rhosts" /etc/hosts.equiv)
42:        if ( -r $f ) then
43:	    set hosts = ($hosts `grep -v "+" $f | grep -E -v "^#" | tr -s " " "	" | cut -f 1`)
44:	endif
45:    end

で空白入り $HOME がダブルクオートなしで $f に展開されたのが原因っぽい(対応漏れ?)。とりあえず $f をダブルクオートで囲ったら今まで通り動くようになった。


42:        if ( -r "$f" ) then

 急にこうなった原因は多分、元々なかったか消してあった /etc/csh.cshrc が急に生えてきて complete.tcsh が読み込まれるようになったためだと思うけど、cygwin で tcsh つかってて、かつ C:\DOCUMENTS AND SETTINGS\%USERNAME%\ みたいな空白を含むパスを HOME にしてる人だと、この現象にひっかかってるはず……あんまりいないかな?

Cygwin使っている人いますか? part2」の 933 が同じ現象ぽそう。5年も前だよ……。

ttyrec on cygwin

Posted at 2007/05/08 23:34 in Cygwin|Web

 職場でもttyshareで遊べる を活用できるように、ttyrec を cygwin で build してみたら予想外に難儀。やっぱ system call 絡むようなのは鬼門だなあ。1時間弱がんばって、なんとか動くようになった。
 で、おわってからなんとなく google で検索してみると、cygwin 本家 ML で同じことしてる人がいるのに気づいた(遅いよ)。
 まあせっかくなので、自分のパッチも晒しておく(ttyrec-1.0.8-cygwin-patch)。一応他の環境に影響与えないようにしてあるはず。

 で、早速自身の build の様子を撮影してみたので、ためしに↓に埋め込んでみる。

 なお、ttyshare 向けに録画する場合は画面サイズを 80 x 24 文字にする必要があるので、rxvt とか xterm ならウィンドウサイズが可変なのでいいとして、普通のコマンドプロンプトの場合は、「コマンドプロンプトのシステムメニュー→プロパティ→レイアウトタブ→ウィンドウのサイズ→高さ」を 24 にしておく必要あると思う。
 あと現状日本語は utf-8 限定らしいので、bash 起動前に DOS の us コマンドで英語モードにしたりもしてるけど、あんまり関係ないかも。

screen on rxvt on cygwin

Posted at 2007/03/20 21:02 in Cygwin

 ……な環境で日本語(SJIS)が化けるのに悩む。あれこれ調べた結果、.screen に

termcapinfo xterm KJ=SJIS
defencoding SJIS

とか書いておくと化けなくなった。termcapinfo は cygwin でも rxvt でもなく xterm というところがミソらしい。

 ちなみに rxvt はこちらのもの(rxvt からクリップボードにコピーしても日本語が化けなくなるパッチ入り)。
 screen はオフィシャルの 4.0.2 をコンパイルしたけど、configure の checking fifos をバイパスしたり、ifdefいじったりする必要あり(patch)。

Page 1/2: 1 2 [>]