# HG changeset patch # User gongo # Date 1194713096 -32400 # Node ID ba1829a0c788c447dbd1380ff382fb2ed7120e55 # Parent 40626191b1fa9619bbc33d94315edf60d144c8d6 change redit-*-command, rename write -> insert diff -r 40626191b1fa -r ba1829a0c788 ChangeLog --- a/ChangeLog Sat Nov 10 22:54:51 2007 +0900 +++ b/ChangeLog Sun Nov 11 01:44:56 2007 +0900 @@ -1,3 +1,17 @@ +2007-11-11 Wataru MIYAGUNI + + * redit-client-sm.el: redit-*-command + REPcommand では 「insert」 なのに + ここでは 「write」 なので、時々混乱する。insert に変更。 + それに総じて、write-* 関数を insert-* 関数にリネーム。 + あと、redit-*-command を使うときに、文字列で定義されてるので + + (string-to-number redit-read-command) + + とかやらないといけない。今日の話し合いで + 「別に文字列である必要はないぜ」ってことで + 全て数値に変更。こっちの方が楽だし、きっと速い。 + 2007-11-10 Wataru MIYAGUNI * redit-client-sm.el: set-process-coding-system diff -r 40626191b1fa -r ba1829a0c788 redit-client-sm.el --- a/redit-client-sm.el Sat Nov 10 22:54:51 2007 +0900 +++ b/redit-client-sm.el Sun Nov 11 01:44:56 2007 +0900 @@ -1,8 +1,10 @@ ;; $Id$ -(defcustom redit-client-program "/Users/gongo/src/cr/REP_project/emacs/redit_client.pl" - "The program to use as the remote-edit client." - :group 'redit - :type 'string) + +;; not use +;;(defcustom redit-client-program "/Users/gongo/src/cr/REP_project/emacs/redit_client.pl" +;; "The program to use as the remote-edit client." +;; :group 'redit +;; :type 'string) ;; 送受信されるコマンドは ;; 2 + 2 + 9 + data @@ -51,36 +53,37 @@ (defvar rep-string-encoding 'utf-8) (defvar redit-open-command "1") -(defvar redit-open-ack "2") -(defvar redit-read-command "3") -(defvar redit-read-ack "4") -(defvar redit-read-finish-ack "5") -(defvar redit-write-command "6") ;; insert -(defvar redit-write-still-ack "7") -(defvar redit-write-finish-ack "8") -(defvar redit-delete-line-command "9") -(defvar redit-delete-line-ack "10") -(defvar redit-close-command "11") -(defvar redit-close-ack "12") -(defvar redit-replace-command "13") -(defvar redit-replace-ack "14") -(defvar redit-nop-command "15") +(defvar redit-open-ack 2) +(defvar redit-read-command 3) +(defvar redit-read-ack 4) +(defvar redit-read-finish-ack 5) ;; obsolete +(defvar redit-insert-command 6) +(defvar redit-insert-ack 7) +;;(defvar redit-write-still-ack "7") +;;(defvar redit-write-finish-ack "8") +(defvar redit-delete-line-command 9) +(defvar redit-delete-line-ack 10) +(defvar redit-close-command 11) +(defvar redit-close-ack 12) +(defvar redit-replace-command 13) +(defvar redit-replace-ack 14) +(defvar redit-nop-command 15) ;; REP Session -(defvar redit-join-command "41") -(defvar redit-join-ack-command "42") -(defvar redit-get-command "43") ;; obsolete -(defvar redit-get-ack-command "44") ;; obsolete -(defvar redit-put-command "45") -(defvar redit-put-ack-command "46") -(defvar redit-select-command "47") ;; obsolete -(defvar redit-select-ack-command "48") ;; obsolete -(defvar redit-register-command "49") ;; obsolete -(defvar redit-register-ack-command "50") ;; obsolete -(defvar redit-deregister-command "51") ;; obsolete -(defvar redit-deregister-ack-command "52") ;; obsolete -(defvar redit-quit-command "53") -(defvar redit-quit-ack-command "54") +(defvar redit-join-command 41) +(defvar redit-join-ack-command 42) +(defvar redit-get-command 43) ;; obsolete +(defvar redit-get-ack-command 44) ;; obsolete +(defvar redit-put-command 45) +(defvar redit-put-ack-command 46) +(defvar redit-select-command 47) ;; obsolete +(defvar redit-select-ack-command 48) ;; obsolete +(defvar redit-register-command 49) ;; obsolete +(defvar redit-register-ack-command 50) ;; obsolete +(defvar redit-deregister-command 51) ;; obsolete +(defvar redit-deregister-ack-command 52) ;; obsolete +(defvar redit-quit-command 53) +(defvar redit-quit-ack-command 54) ;; Queue struct ;; (defstruct Queue (front nil) (rear nil)) @@ -196,14 +199,14 @@ (process-send-string redit-client-process (concat (redit-pack - (string-to-number redit-join-command) - 0 0 0 0 0))) + redit-join-command + 0 0 0 0 0))) ;; PUT if buffer-name is not "*scratch*" (process-send-string redit-client-process (concat (redit-pack - (string-to-number redit-put-command) - 0 0 0 0 (string-bytes (encode-coding-string (buffer-name) rep-string-encoding))) (buffer-name))))) + redit-put-command + 0 0 0 0 (string-bytes (encode-coding-string (buffer-name) rep-string-encoding))) (buffer-name))))) ;; 'get' is obsolete command ;; (defun redit-get-command () @@ -294,19 +297,19 @@ (progn (process-send-string redit-client-process - (format "%10d%10d%10d%10d%10d%10d\n" (string-to-number redit-read-command) redit-client-session-id redit-client-editor-id (gen-seqno) linenum 0)) + (format "%10d%10d%10d%10d%10d%10d\n" redit-read-command redit-client-session-id redit-client-editor-id (gen-seqno) linenum 0)) (while (eq nil (accept-process-output redit-client-process))))) (error "redit-client is not running."))) ;; linenumで指定された行の編集をサーバへ送る -;; redit-client-process にwriteコマンドとバッファ番号、行番号、行の内容を送り、 -;; Ack を受け取る -(defun redit-client-write-line (linenum isnewline) +;; redit-client-process に insert コマンドと +;;バッファ番号、行番号、行の内容を送り、 Ack を受け取る +(defun redit-client-insert-line (linenum isnewline) (if redit-client-process (save-excursion (let ((beginp) (endp) (length)) - ;; write lines on server buffer + ;; insert lines on server buffer (setq beginp (progn (goto-line linenum) (beginning-of-line) (point))) (setq endp @@ -337,7 +340,7 @@ ;;(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-insert-command redit-client-session-id redit-client-editor-id (gen-seqno) linenum length) @@ -362,7 +365,7 @@ ;;(enqueue redit-client-command-queue ;;(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")) - ;; write lines on server buffer + ;; insert lines on server buffer (process-send-string redit-client-process @@ -371,7 +374,7 @@ ;; (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-delete-line-command redit-client-session-id redit-client-editor-id (gen-seqno) linenum 0))) @@ -384,14 +387,14 @@ "Save File and exit Remote-edit client." (interactive) (let ((line redit-client-previous-line)) - (redit-client-write-line line nil) + (redit-client-insert-line line nil) (process-send-string redit-client-process (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-close-command redit-client-session-id redit-client-editor-id (gen-seqno) 0 0) "\n")))) @@ -421,63 +424,63 @@ ;; command がどの命令かを判断し、対応した処理をする。case みたい (cond ;; FIXME - ((if (= command (string-to-number redit-open-ack)) + ((if (= command redit-open-ack) (if (/= redit-client-editor-id (rep-get-editor-id-from-pkt string)) (redit-client-exec-open-ack string)))) - ((if (= command (string-to-number redit-read-ack)) + ((if (= command redit-read-ack) (if (= redit-client-editor-id (rep-get-editor-id-from-pkt string)) (redit-client-exec-read-ack string)))) - ((if (= command (string-to-number redit-write-still-ack)) + ((if (= command redit-insert-ack) (if (= redit-client-editor-id (rep-get-editor-id-from-pkt string)) - (redit-client-exec-write-still-ack string)))) + (redit-client-exec-insert-ack string)))) - ((if (= command (string-to-number redit-delete-line-ack)) + ((if (= command redit-delete-line-ack) (if (= redit-client-editor-id (rep-get-editor-id-from-pkt string)) (redit-client-exec-delete-line-ack string)))) - ((if (= command (string-to-number redit-close-ack)) + ((if (= command redit-close-ack) (if (= redit-client-editor-id (rep-get-editor-id-from-pkt string)) (redit-client-exec-close-ack string)))) - ((if (= command (string-to-number redit-write-command)) + ((if (= command redit-insert-command) (if (/= redit-client-editor-id (rep-get-editor-id-from-pkt string)) - (redit-client-exec-write-line string)))) + (redit-client-exec-insert-line string)))) ;; from Session Manager ;; join ack (editor id) - ((if (= command (string-to-number redit-join-ack-command)) + ((if (= command redit-join-ack-command) ;;(message "redit-client-exec-join") (redit-client-exec-join string))) ;; put ack (editor id) - ((if (= command (string-to-number redit-put-ack-command)) + ((if (= command redit-put-ack-command) (redit-client-exec-put string))) ;; select ack ;; TODO : start editing ;; obsolete - ;;((if (= command (string-to-number redit-select-ack-command)) + ;;((if (= command redit-select-ack-command) ;;(redit-client-exec-select))) ;; get - ;;((if (= command (string-to-number redit-get-command)) + ;;((if (= command redit-get-command) ;;(if (= redit-client-editor-id (rep-get-editor-id-from-pkt string)) ;;(redit-client-exec-get string)))) ;; register - ;;((if (= command (string-to-number redit-register-command)) + ;;((if (= command redit-register-command) ;;(if (= redit-client-editor-id (rep-get-editor-id-from-pkt string)) ;;(redit-client-exec-register string)))) ;; deregister - ;;((if (= command (string-to-number redit-deregister-command)) + ;;((if (= command redit-deregister-command) ;;(if (= redit-client-editor-id (rep-get-editor-id-from-pkt string)) ;;(redit-client-exec-deregister string)))) ;; delete line - ((if (= command (string-to-number redit-delete-line-command)) + ((if (= command redit-delete-line-command) (if (/= redit-client-editor-id (rep-get-editor-id-from-pkt string)) (redit-client-exec-delete-line string)))) )) @@ -550,7 +553,7 @@ ;; 前回の編集した行と今回の編集した行が ;; 違っていたら前回の編集をサーバへ送る (if (not (= beginl redit-client-previous-edited-line)) - (redit-client-write-line redit-client-previous-edited-line nil)) + (redit-client-insert-line redit-client-previous-edited-line nil)) ;; 削除処理で起こる。 ;; (ex. BackSpaceによる行そのものの削除, C-Space C-wなどのカット, ...) @@ -579,13 +582,13 @@ (setq currline beginl) ;; beginlからendlまで挿入命令を出す (while (<= currline endl) - (progn (redit-client-write-line currline nil) + (progn (redit-client-insert-line currline nil) (setq currline (+ currline 1)))))) (setq redit-client-previous-edited-line endl))) ;; 引き数で与えられた string (line_num + text_data) から ;; 指定された行を削除し、そこに text_data を挿入する -(defun redit-client-exec-write-line (string) +(defun redit-client-exec-insert-line (string) (let ((linenum (rep-get-line-number-from-pkt string)) ;; 行番号 (text (rep-get-text-from-pkt string))) ;; テキストデータ (if (< (real-count-lines (point-max)) linenum) @@ -661,7 +664,7 @@ (insert (rep-get-text-from-pkt string))))) ;; テキストデータを挿入 ;; redit-client-line-max-in-server に行番号を入れてる(だけ) -(defun redit-client-exec-write-still-ack (string) +(defun redit-client-exec-insert-ack (string) (save-excursion (set-buffer redit-client-buffer) (let ((linenum (rep-get-line-number-from-pkt string ))) @@ -778,24 +781,24 @@ ;; -------- translation ------------ (if (< (+ (redit-get-line-from-queue cc) xcc) (+ (redit-get-line-from-queue rc) xrc)) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-write-command)) (setq xrc (- xrc 1))) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-delete-line-command)) (setq xrc (- xrc 1)))) + (if (= (redit-get-command-from-queue cc) redit-insert-command) (setq xrc (- xrc 1))) + (if (= (redit-get-command-from-queue cc) redit-delete-line-command) (setq xrc (- xrc 1)))) (if (> (+ (redit-get-line-from-queue cc) xcc) (+ (redit-get-line-from-queue rc) xrc)) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-delete-line-command)) (setq xcc (- xcc 1)))) + (if (= (redit-get-command-from-queue rc) redit-insert-command) (setq xcc (+ xcc 1))) + (if (= (redit-get-command-from-queue rc) redit-delete-line-command) (setq xcc (- xcc 1)))) (if (= (+ (redit-get-line-from-queue cc) xcc) (+ (redit-get-line-from-queue rc) xrc)) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-replace-command)) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-write-command)) (setq xrc (+ xrc 1))) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-replace-command)) (setq cignore 1)) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-delete-line-command)) (setq crc redit-write-command) (setq cignore 1)))) + (if (= (redit-get-command-from-queue rc) redit-insert-command) (setq xcc (+ xcc 1))) + (if (= (redit-get-command-from-queue rc) redit-replace-command) + (if (= (redit-get-command-from-queue cc) redit-insert-command) (setq xrc (+ xrc 1))) + (if (= (redit-get-command-from-queue cc) redit-replace-command) (setq cignore 1)) + (if (= (redit-get-command-from-queue cc) redit-delete-line-command) (setq crc redit-insert-command) (setq cignore 1)))) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-delete-line-command)) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-write-command)) (setq xrc (+ (redit-get-line-from-queue rc) 1))) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-replace-command)) (setq cignore 1)) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-delete-line-command)) (setq cignore 1) (setq rignore 1))) + (if (= (redit-get-command-from-queue rc) redit-delete-line-command) + (if (= (redit-get-command-from-queue cc) redit-insert-command) (setq xrc (+ (redit-get-line-from-queue rc) 1))) + (if (= (redit-get-command-from-queue cc) redit-replace-command) (setq cignore 1)) + (if (= (redit-get-command-from-queue cc) redit-delete-line-command) (setq cignore 1) (setq rignore 1))) ;; -------- translation ------------ @@ -834,23 +837,23 @@ (if (and (= cignore 1) (= rignore 1)) (if (< (+ (redit-get-line-from-queue rc) xrc) (+ (redit-get-line-from-queue cc) xcc)) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-delete-line-command)) (setq xcc (- xcc 1)))) + (if (= (redit-get-command-from-queue rc) redit-insert-command) (setq xcc (+ xcc 1))) + (if (= (redit-get-command-from-queue rc) redit-delete-line-command) (setq xcc (- xcc 1)))) (if (> (+ (redit-get-line-from-queue rc) xrc) (+ (redit-get-line-from-queue cc) xcc)) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-write-command)) (setq xrc (- xrc 1))) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-delete-line-command)) (setq xrc (+ xrc 1)))) + (if (= (redit-get-command-from-queue cc) redit-insert-command) (setq xrc (- xrc 1))) + (if (= (redit-get-command-from-queue cc) redit-delete-line-command) (setq xrc (+ xrc 1)))) (if (= (+ (redit-get-line-from-queue rc) xrc) (+ (redit-get-line-from-queue cc) xcc)) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-replace-command)) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-replace-command)) (setq cignore 1)) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-delete-line-command)) (setq crc redit-write-command) (setq cignore 1)))) - (if (= (redit-get-command-from-queue cc) (string-to-number redit-delete-line-command)) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-write-command)) (setq xcc (+ (redit-get-line-from-queue cc) 1))) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-replace-command)) (setq crc redit-write-command) (setq cignore 1)) - (if (= (redit-get-command-from-queue rc) (string-to-number redit-delete-line-command)) (setq cignore 1) (setq rignore 1)))) + (if (= (redit-get-command-from-queue cc) redit-insert-command) (setq xcc (+ xcc 1))) + (if (= (redit-get-command-from-queue cc) redit-replace-command) + (if (= (redit-get-command-from-queue rc) redit-insert-command) (setq xcc (+ xcc 1))) + (if (= (redit-get-command-from-queue rc) redit-replace-command) (setq cignore 1)) + (if (= (redit-get-command-from-queue rc) redit-delete-line-command) (setq crc redit-insert-command) (setq cignore 1)))) + (if (= (redit-get-command-from-queue cc) redit-delete-line-command) + (if (= (redit-get-command-from-queue rc) redit-insert-command) (setq xcc (+ (redit-get-line-from-queue cc) 1))) + (if (= (redit-get-command-from-queue rc) redit-replace-command) (setq crc redit-insert-command) (setq cignore 1)) + (if (= (redit-get-command-from-queue rc) redit-delete-line-command) (setq cignore 1) (setq rignore 1)))) ;; -------- translation ------------ diff -r 40626191b1fa -r ba1829a0c788 redit-client-sm.elc Binary file redit-client-sm.elc has changed