Mercurial > hg > RemoteEditor > emacs
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