Mercurial > hg > RemoteEditor > emacs
diff redit-client-sm.el @ 8:2b2c8c2cb9d6
*** empty log message ***
author | gongo |
---|---|
date | Thu, 14 Dec 2006 18:14:40 +0900 |
parents | 6b82a318980c |
children | ccaeffb8975d |
line wrap: on
line diff
--- a/redit-client-sm.el Tue Dec 12 16:23:59 2006 +0900 +++ b/redit-client-sm.el Thu Dec 14 18:14:40 2006 +0900 @@ -78,7 +78,7 @@ (defvar redit-quit-ack-command "54") ;; Queue struct -(defstruct Queue (front nil) (rear nil)) +(defstruct Queue (front nil) (rear nil)) (setq redit-client-command-queue (make-Queue)) (setq redit-client-receive-queue (make-Queue)) (setq redit-client-send-queue (make-Queue)) @@ -299,7 +299,7 @@ (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) linenum 0) "\n")))) + (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")))) ;; redit-client-process を終了させる (defun redit-client-kill () @@ -485,7 +485,7 @@ (text (rep-get-text-from-pkt string))) ;; テキストデータ (if (< (real-count-lines (point-max)) linenum) (progn - (end-of-buffer) (newline))) + (call-interactively 'end-of-buffer) (newline))) (goto-line linenum) (delete-region (progn (beginning-of-line) (point)) ;; 行の頭から (progn (end-of-line) (point))) ;; 行の末尾まで削除 @@ -514,7 +514,7 @@ (make-variable-buffer-local 'redit-client-buffer-name) (make-variable-buffer-local 'redit-client-editor-id) (setq redit-client-buffer-name - (rep-get-text-from-pk string)) + (rep-get-text-from-pkt string)) (setq redit-client-buffer (get-buffer-create redit-client-buffer-name)) ;; プロセスとバッファを関連づける (set-process-buffer redit-client-process redit-client-buffer) @@ -618,8 +618,7 @@ (string-to-number (substring pkt 50 60))) (defun rep-get-text-from-pkt (pkt) (let ((size (rep-get-text-size-from-pkt pkt))) - (substring (decode-coding-string pkt 'euc-jp) 60 (+ 60 size)))) - + (substring (decode-coding-string pkt 'euc-jp) 60 (+ 60 size)))) ;; enqueue item in queue (defun enqueue (queue item) @@ -668,25 +667,25 @@ (setq rc (car rque)) ;; -------- translation ------------ - (if (< (+ (redit-get-line cc) xcc) (+ (redit-get-line rc) xrc)) - (if (= (redit-get-command cc) (string-to-number redit-write-command)) (setq xrc (- xrc 1))) - (if (= (redit-get-command cc) (string-to-number 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 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-line cc) xcc) (+ (redit-get-line rc) xrc)) - (if (= (redit-get-command rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command rc) (string-to-number 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-delete-line-command)) (setq xcc (- xcc 1)))) - (if (= (+ (redit-get-line cc) xcc) (+ (redit-get-line rc) xrc)) - (if (= (redit-get-command rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command rc) (string-to-number redit-replace-command)) - (if (= (redit-get-command cc) (string-to-number redit-write-command)) (setq xrc (+ xrc 1))) - (if (= (redit-get-command cc) (string-to-number redit-replace-command)) (setq cignore 1)) - (if (= (redit-get-command cc) (string-to-number redit-delete-line-command)) (setq crc redit-write-command) (setq cignore 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 rc) (string-to-number redit-delete-line-command)) - (if (= (redit-get-command cc) (string-to-number redit-write-command)) (setq xrc (+ (redit-get-line rc) 1))) - (if (= (redit-get-command cc) (string-to-number redit-replace-command)) (setq cignore 1)) - (if (= (redit-get-command cc) (string-to-number redit-delete-line-command)) (setq cignore 1) (setq rignore 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))) ;; -------- translation ------------ @@ -701,7 +700,7 @@ (setq cignore 0)) ;; -------- add after que ------------ - (enqueue after-CQ (concat (format "%2d%2d%9d" (redit-get-command cc) (redit-get-uid cc) (+ (redit-get-line cc) xcc)) (redit-get-text cc))) + (enqueue after-CQ (concat (format "%2d%2d%9d" (redit-get-command-from-queue cc) (redit-get-uid-from-queue cc) (+ (redit-get-line-from-queue cc) xcc)) (redit-get-text-from-queue cc))) ;; -------- add after que ------------ (setq cque (cdr cque))) ;; while cque @@ -724,24 +723,24 @@ ;; -------- translation ------------ (if (and (= cignore 1) (= rignore 1)) - (if (< (+ (redit-get-line rc) xrc) (+ (redit-get-line cc) xcc)) - (if (= (redit-get-command rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command rc) (string-to-number 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 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-line rc) xrc) (+ (redit-get-line cc) xcc)) - (if (= (redit-get-command cc) (string-to-number redit-write-command)) (setq xrc (- xrc 1))) - (if (= (redit-get-command cc) (string-to-number 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 xrc (- xrc 1))) + (if (= (redit-get-command-from-queue cc) (string-to-number redit-delete-line-command)) (setq xrc (+ xrc 1)))) - (if (= (+ (redit-get-line rc) xrc) (+ (redit-get-line cc) xcc)) - (if (= (redit-get-command cc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command cc) (string-to-number redit-replace-command)) - (if (= (redit-get-command rc) (string-to-number redit-write-command)) (setq xcc (+ xcc 1))) - (if (= (redit-get-command rc) (string-to-number redit-replace-command)) (setq cignore 1)) - (if (= (redit-get-command rc) (string-to-number redit-delete-line-command)) (setq crc redit-write-command) (setq cignore 1)))) - (if (= (redit-get-command cc) (string-to-number redit-delete-line-command)) - (if (= (redit-get-command rc) (string-to-number redit-write-command)) (setq xcc (+ (redit-get-line cc) 1))) - (if (= (redit-get-command rc) (string-to-number redit-replace-command)) (setq crc redit-write-command) (setq cignore 1)) - (if (= (redit-get-command rc) (string-to-number redit-delete-line-command)) (setq cignore 1) (setq rignore 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)))) ;; -------- translation ------------ @@ -756,7 +755,7 @@ (setq rignore 0)) ;; -------- add after que ------------ - (enqueue after-RQ (concat (format "%2d%2d%9d" (redit-get-command rc) (redit-get-uid rc) (+ (redit-get-line rc) xrc)) (redit-get-text rc))) + (enqueue after-RQ (concat (format "%2d%2d%9d" (redit-get-command-from-queue rc) (redit-get-uid-from-queue rc) (+ (redit-get-line-from-queue rc) xrc)) (redit-get-text-from-queue rc))) ;; -------- add after que ------------ (setq rque (cdr rque))) ;; while cque @@ -783,4 +782,13 @@ (defun redit-client-print-send-queue () "Print command queue." (interactive) - (print redit-client-send-queue)) \ No newline at end of file + (print redit-client-send-queue)) + +(defun redit-get-command-from-queue (queue) + (nth 0 (Queue-front queue))) +(defun redit-get-line-from-queue (queue) + (nth 1 (Queue-front queue))) +(defun redit-get-uid-from-queue (queue) + (nth 2 (Queue-front queue))) +(defun redit-get-text-from-queue (queue) + (nth 3 (Queue-front queue))) \ No newline at end of file