changeset 27:7134bc86f50d

fix
author gongo
date Sat, 10 Nov 2007 21:33:31 +0900
parents 7bc89500bd53
children 40626191b1fa
files ChangeLog redit-client-sm.el redit-client-sm.elc
diffstat 3 files changed, 61 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Nov 10 21:09:25 2007 +0900
+++ b/ChangeLog	Sat Nov 10 21:33:31 2007 +0900
@@ -1,5 +1,16 @@
 2007-11-10  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
+	* redit-client-sm.el: process-send-string 関連
+	process-send-string で、以前までは、送るコマンドを
+
+	(format "%10d%10d" sid eid)
+
+	って感じの文字列を生成して出力してましたが、
+	これは、通信用の Perl スクリプトに送るためのものでした。
+	今は既に、lispから直接 SessionManager にコマンドを送るので、これではだめ。
+	前々から使ってたけど、(redit-pack sid eid...) ってのに変更しました。
+	引数を何にするかって参考で、一応 obsolete な記述も残してはいますが。
+	
 	* redit-client-sm.el: redit-select-command (obsolete)
 	editor側では select 要らないってことで。
 	これで、editor側で必要なのは join, put, quit, その他編集コマンド。
--- a/redit-client-sm.el	Sat Nov 10 21:09:25 2007 +0900
+++ b/redit-client-sm.el	Sat Nov 10 21:33:31 2007 +0900
@@ -227,25 +227,24 @@
 ;;    )
 ;;  )
 
-;; (defun redit-put-command ()
-;; "put"
-;; (interactive)
-;; )
-(defun redit-put-command (session-name)
-  "put session"
-  (interactive "P")
-  (if (setq session-name (read-string "put session name:")) 
-      (process-send-string 
-       redit-client-process
-       (concat
-	(redit-pack
-	 (string-to-number redit-put-command) 0 0 0 0
-	 (string-bytes (encode-coding-string session-name rep-string-encoding)))
-	session-name
-	)
-       )
-    (error "invalid session name.")
-    ))
+;; put-command は、join-command 内で
+;; ファイルを開いてない *scratch* の時に呼び出されるので
+;; ここで定義する必要は無い
+;;(defun redit-put-command (session-name)
+;;  "put session"
+;;  (interactive "P")
+;;  (if (setq session-name (read-string "put session name:")) 
+;;      (process-send-string 
+;;       redit-client-process
+;;       (concat
+;;	(redit-pack
+;;	 (string-to-number redit-put-command) 0 0 0 0
+;;	 (string-bytes (encode-coding-string session-name rep-string-encoding)))
+;;	session-name
+;;	)
+;;       )
+;;    (error "invalid session name.")
+;;    ))
 
 ;; 'register' is obsolete command
 ;; (defun redit-register-command (session-name)
@@ -331,7 +330,10 @@
 	  (process-send-string
 	   redit-client-process
 	   (concat
+
+	    ;; obsolete send string
 	    ;;(format "%10d%10d%10d%10d%10d%10d" (string-to-number redit-write-command) redit-client-session-id redit-client-editor-id (gen-seqno) linenum length)
+
 	    (redit-pack
 	     (string-to-number redit-write-command)
 	     redit-client-session-id
@@ -361,8 +363,17 @@
 	;; write lines on server buffer
 	(process-send-string
 	 redit-client-process
-	 (concat (format "%10d%10d%10d%10d%10d%10d" (string-to-number redit-delete-line-command) redit-client-session-id redit-client-editor-id (gen-seqno) linenum 0) "\n"))
-	(sleep-for 0.3)
+
+	 (concat
+	  ;; obsolete send string
+	  ;; (format "%10d%10d%10d%10d%10d%10d" (string-to-number redit-delete-line-command) redit-client-session-id redit-client-editor-id (gen-seqno) linenum 0) "\n"))
+
+	  (redit-pack
+	   (string-to-number redit-delete-line-command)
+	   redit-client-session-id
+	   redit-client-editor-id
+	   (gen-seqno) linenum 0)))
+	 (sleep-for 0.3)
 	)
     (error "redit-client is not running.")))
 
@@ -374,7 +385,14 @@
     (redit-client-write-line line nil)
     (process-send-string
      redit-client-process
-     (concat (format "%10d%10d%10d%10d%10d%10d" (string-to-number redit-close-command) redit-client-session-id redit-client-editor-id (gen-seqno) 0 0) "\n"))))
+     (concat
+      ;; obsolete send string
+      ;; (format "%10d%10d%10d%10d%10d%10d" (string-to-number redit-close-command) redit-client-session-id redit-client-editor-id (gen-seqno) 0 0)
+      (redit-pack
+       (string-to-number redit-close-command)
+       redit-client-session-id
+       redit-client-editor-id
+       (gen-seqno) 0 0) "\n"))))
 
 ;; redit-client-process を終了させる
 (defun redit-client-kill ()
@@ -437,8 +455,9 @@
 
      ;; select ack
      ;; TODO : start editing
-     ((if (= command (string-to-number redit-select-ack-command))
-	  (redit-client-exec-select)))
+     ;; obsolete
+     ;;((if (= command (string-to-number redit-select-ack-command))
+     ;;(redit-client-exec-select)))
 
      ;; get
      ;;((if (= command (string-to-number redit-get-command))
@@ -663,12 +682,16 @@
 ;; 引き数で与えられた string から Editor IDを取得する
 (defun redit-client-exec-join (string)
   (setq redit-client-editor-id (rep-get-editor-id-from-pkt string))
-  (insert (concat "eid = " (number-to-string redit-client-editor-id) "\n")))
+  (message (concat "your editor id = " (number-to-string redit-client-editor-id) "\n")))
 
-;; 引き数で与えられた string から Session IDを取得する
+;; //引き数で与えられた string から Session IDを取得する
+;; 新仕様で、(put = ファイル有りjoin) ってことになって
+;; editor id を返すことになったので、sid と共に eid もセーブする
 (defun redit-client-exec-put (string)
+  (setq redit-client-editor-id (rep-get-editor-id-from-pkt string))
   (setq redit-client-session-id (rep-get-session-id-from-pkt string))
-  (insert (concat "put session id = " (number-to-string redit-client-session-id) "\n")))
+  (message (concat "Your Editor ID = " (number-to-string redit-client-editor-id) "\n"))
+  (message (concat "Session ID = " (number-to-string redit-client-session-id) "\n")))
 
 ;; SessionIDを名前とした、新しいバッファを開く
 ;; FIXME
Binary file redit-client-sm.elc has changed