[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00971] Re: LOG_DIR from within archive browser causes SEGV
- Subject: [FDclone-users:00971] Re: LOG_DIR from within archive browser causes SEGV
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Mon, 09 Apr 2012 23:48:12 +0900
しらいです。
In Message-Id <86r4vxl4ic.knu@iDaemons.org>
"Akinori MUSHA" <knu@iDaemons.org>さんwrites:
> > 従来は、OUT_DIR による移動時のみ直前の directory にカーソ
> > ル移動させていましたが、LOG_DIR や cd で .. に移動した場合も
> > 同じ処理になります。
> > 更には、../.. のように孫やひ孫の directory から移動した場
> > 合も直系の子にあたる directory にカーソル移動します。慣れな
> > いと気持ち悪いかも知れません。
>
> 私は逆に、そういう仕様の方が一つ前のディレクトリを忘れずに済んでいい
> なと思っていたので違和感はないです。
では、特に異論の出ない限りは新仕様として採用することにしま
しょう。色々意見は出て来るかも知れませんが、どちらの仕様でも
致命的な欠陥には至らないと思います。
> アーカイブブラウザ内での cd は、アーカイブ内のディレクトリ構造に該当
> があれば(cwd の代わりに)アーカイブ内を移動するようになったんですね。
いえ、相対パスなら仮想移動で、絶対パスだと実移動という仕様
です。これは元々 LOG_DIR の仕様で、それを cd にも拡張しただ
けなので、旧版でも LOG_DIR の動作で確認出来ると思います。
> 3. 「/a/b/c.tar:d」の状態で「cd ../..」とすると「/a/b/c.tar:..」に
> 移動
>
> 4. アーカイブブラウザ内での「cd .」は一律「cd: .: bad directory」
> でエラー
これは bug ですね。「/a/b/c.tar:..」のような表記が現れるの
は、実際に c.tar の中に .. から始まる filename が格納されて
いる場合のみの筈です。
この場合、「/a/b/c.tar:」の状態で OUT_DIR の結果と LOG_DIR
.. の結果が異なり、それぞれ「/a/b/c.tar」「/a/b/c.tar:..」に
移行します。
その辺りの parse 処理が甘かったので修正しました。下記 URL
に FD-3.00j からの差分として patch を置いたので、改めてこち
らでご確認お願いします。
ftp://ftp.unixusers.net/src/beta/fdclone/FD-3.00j-patch2.txt
> シェル関数を書く上では、 cd はUnix的な chdir であってほしい気もします。
ふむ。確かに一理ありますね。では、内部コマンドは仮想移動で
組込みコマンドは実移動ということにしましょう。組込みコマンド
だと他に pushd/popd があります。
考えてみれば、pushd で仮想 CWD を stack されても困るだけな
ので、少なくとも pushd/popd だけは実移動にしておくべきでした
ね。
> SCMを導入してブランチを使うと楽ですよ。
別にバージョン管理をしていないという訳ではないのですが、何
も考えずに差分を作ると、誤字脱字の修正やインデントといった本
質的でない部分まで含んで肥大化してしまいます。
Cygwin 関連や端末サイズの件など、今回の件とは明らかに異な
る修正点は別のタグを作ってあるので、割と容易に該当箇所だけを
抽出出来るのですが、同じタグになってると分離出来ません。
勿論、それぞれ別のタグにしておけば良かったかも知れませんけ
ど、修正点が多過ぎて patch が肥大化したのは結果論なので、な
かなか最初から切り分けて修正するのは難しいですね。
しらい たかし