changeset 15:80db8560887c

add rep-string-encoding and translate it.
author shinobu
date Sat, 10 Nov 2007 14:58:51 +0900
parents 0178ba3c83fd
children cf36410f06c2
files redit-client-sm.el
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/redit-client-sm.el	Sat Nov 10 01:57:39 2007 +0900
+++ b/redit-client-sm.el	Sat Nov 10 14:58:51 2007 +0900
@@ -47,6 +47,9 @@
 (defvar redit-max-string-length 1004
   "Read-Write max length of string.")
 
+; REP が使用する文字コード
+(defvar rep-string-encoding 'utf-8)
+
 (defvar redit-open-command           "1")
 (defvar redit-open-ack               "2")
 (defvar redit-read-command           "3")
@@ -287,7 +290,9 @@
 		(progn (goto-line linenum) (beginning-of-line) (point)))
 	  (setq endp
 		(progn (goto-line linenum) (end-of-line) (point)))
-	  (setq length (- endp beginp))
+	  ; (setq length (- endp beginp))
+      ; rep-string-encoding に変換してから長さを求める
+	  (setq length (string-bytes (encode-coding-string (buffer-substring beginp endp) rep-string-encoding)))
 
 	  ;; トークンが回ってくるのを待つ場合は、
 	  ;; すぐに process-send-string せずに
@@ -305,7 +310,9 @@
 	  (process-send-string
 	   redit-client-process
 	   (concat (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)
-		   (buffer-substring beginp endp)
+		   ; (buffer-substring beginp endp)
+           ; rep-string-encoding に変換
+		   (encode-coding-string (buffer-substring beginp endp) rep-string-encoding)
 		   (if (eq isnewline t) "\n")
 		   "\n"))
 	  (sleep-for 0.3)
@@ -845,4 +852,4 @@
 (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
+  (nth 3 (Queue-front queue)))