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

[mhc:00569] Re: mhc-snap20000427.tar.gz



乃村です。

On Fri, 28 Apr 2000 13:56:11 +0900,
	Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx> said:

> もしかして、(確か)Windows って open していると mv 出来ないって
> 奴かもしれない。
> 
> # ためそうと思ったんですが、close の書き方がわからない奴 ^^;

なるほど。それなら心当りあります。ruby って FD が足りなくなった
ら unref になったやつを自動的に close してくれると聞いていたので、
そのまま放ってる箇所が何箇所かありそうです。

# ちなみに file の close は file .close で閉じられます。

> 私、UNIX も Win も tcsh なんです :-) jis のままでもいいから
> stdout がいいな。

失礼。|& ですしたか。(もういいって?) to_sjis するようにします。
close と漢字コードの修正パッチを後ろに付けます。

> 完全 local な network (例えば社内 only) で使う人もいるであろうこ
> とを考えると、暗号化しないで sync する手段があってもかまわないと
> 思います。(暗号化したい人は暗号化する、ということで)

ふむ。無法地帯の大学で暮らしているので、認識不足でした。

これをやるとすれば、通信の手段は何がいいのでしょう。telnet なら、
ruby の TCPsocket クラス使ってやれば、外部コマンドは不要になるか
もしれません。elisp だと open-network-stream で何とかなるかしら。

# expect みたいなことやってくれるのがあれば楽なのですが。。
--
nom

Index: mhc-sync
===================================================================
RCS file: /u/nom/prj/cvsroot/mhc/mhc-sync,v
retrieving revision 1.5
retrieving revision 1.7
diff -u -r1.5 -r1.7
--- mhc-sync	2000/04/26 11:47:03	1.5
+++ mhc-sync	2000/04/28 06:27:43	1.7
@@ -3,6 +3,17 @@
 STDOUT .sync = true
 STDIN  .sync = true
 
+require 'kconv'
+
+case $KCODE
+when 'JIS'
+  $KANJI_CODE = Kconv::JIS
+when 'SJIS'
+  $KANJI_CODE = Kconv::SJIS
+else
+  $KANJI_CODE = Kconv::EUC
+end
+
 $LOG_FILE = ENV["HOME"] + '/Mail/schedule/.mhc-db-log'
 $SSH         = 'ssh'
 $COMMAND     = 'mhc-sync'
@@ -34,11 +45,11 @@
 
 class MhcScheduleItem
   def info
-    return format("%s (first occurred %s)", subject, occur_min .to_s1('-'))
+    ret = format("%s (first occurred %s)", subject, occur_min .to_s1('-'))
+    return Kconv::kconv(ret, $KANJI_CODE, true)
   end
 end
 
-
 class MhcScheduleDB
 
   def modify_sch(sch)
@@ -259,9 +270,11 @@
       inout .print $DELIMITOR, "\n"
 
     when '-D' # delete local
-      STDERR .print "---------------------------------------------------\n"
-      STDERR .print "Delete local #{l_sch .info}\n"
-      db .del_sch(l_sch) if !$DRY_RUN
+      if l_sch
+	STDERR .print "---------------------------------------------------\n"
+	STDERR .print "Delete local #{l_sch .info}\n"
+	db .del_sch(l_sch) if !$DRY_RUN
+      end
 
     when '-M' # transfer remote to local
       STDERR .print "---------------------------------------------------\n"
Index: ruby-ext/lib/mhc-schedule.rb
===================================================================
RCS file: /u/nom/prj/cvsroot/mhc/ruby-ext/lib/mhc-schedule.rb,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- mhc-schedule.rb	2000/04/26 10:47:51	1.17
+++ mhc-schedule.rb	2000/04/28 06:19:40	1.18
@@ -3,7 +3,7 @@
 ## Author:  Yoshinari Nomura <nom@xxxxxxx>
 ##
 ## Created: 1999/07/16
-## Revised: $Date: 2000/04/26 10:47:51 $
+## Revised: $Date: 2000/04/28 06:19:40 $
 ##
 
 ################################################################
@@ -825,7 +825,9 @@
     ## 3. set @description
 
     clear
-    all_headers = File .open(path, "r") .gets("\n\n")
+    file = File .open(path, "r")
+    all_headers =  file .gets("\n\n")
+    file .close
     @non_xsc_header, xsc_header_hash = select_headers(all_headers)
     parse_xsc_headers(xsc_header_hash)
     @path = path
@@ -1233,6 +1235,7 @@
 	  header += line
 	end
       end
+      file .close
       if  header != ''
 	regist(slot, MhcScheduleItem .new(header, false))
       end