[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cvs-ml 65] Re: Win32環境での改行コードの扱い



西本です。

  From: Hiroshi Kato <tumibito@mm.rd.nttdata.co.jp>
  Date: Thu, 04 Feb 1999 21:20:52 +0900
  Subject: [cvs-ml 64] Re: Win32 環境での改行コードの扱い

> 加藤です.
> 
> > 山口です。ありがとうございます。
> 		(略)
> > 私の理解が間違っているのかもしれませんが、改行コードの変換は、
> > サーバではなくクライアントの CVS が行うものですよね。上記の
> > 処理で tr を使うとしても、それはサーバ側で行われるため、改行
> > 変換前のコードが対象になってしまう気がします。
> 
> 考えてみたら,そうですね.
> modules -i -o -e -t -u で起動するプログラムもサーバー側のようですし.

私も詳しいことは分からないのですが、クライアントの cvs.exe にも
パッチが必要ではないかと思います。

直接はお役に立てないのですが、WinCVS の Macro にチャレンジしました。
なんとかパッチを当てないで漢字コードや改行コードの変換ができないかと。。
tcl は苦手なのですが、できそうだってことはわかりました。

下のマクロを WinCVS\Macro の下に置いて WinCVS を立ちあげ直すと 
Selection -> Macro Selection メニューに追加されます。
選択したファイルに対してこのマクロを実行すると cvs update して
改行コードの変換をします。
#でも commit も作らないとだめですね。。

#!CVSGUI1.0 --selection  --name "Update as UNIX text"
#
# SelUpdate.tcl
#
# Requires nkf32.exe and Cygnus tools

set selList [cvsbrowser get]
set selSize [llength $selList]

cvsout "Checkout file as UNIX text file.\n"
cvsout "Total selected : " $selSize "\n\n"
for {set i 0} {$i < $selSize} {incr i} {
	set file [lindex $selList $i]
	cvsbrowser info $file fileInfo

        set name $fileInfo(name)
        set path $fileInfo(path)
        cvsout "Updating $file\n"
        cvs update $name
        cvsout "Doing nkf32 -d -s $file\n"
        exec c:\\usr\\bin\\nkf32 -d -s -O $file $file.new
        exec c:\\usr\\bin\\mv $file $file.org
        exec c:\\usr\\bin\\mv $file.new $file
        exec c:\\usr\\bin\\touch -r $file.org $file
        exec c:\\usr\\bin\\rm $file.org 
        cvsout "$file Done.\n"
}
cvsout "Finished.\n"

==
西本卓也 (助手)  / 京都工芸繊維大学 電子情報工学科 
Takuya NISHIMOTO  / Kyoto Institute of Technology 
nishi@dj.kit.ac.jp / http://www-vox.dj.kit.ac.jp/nishi/ 
tel:075-724-7492 fax:075-724-7400 Kyoto 606-8585 Japan