Mercurial > hg > RemoteEditor > emacs
changeset 30:9e43cec05dc5
fix redit-unpack-int()
author | gongo |
---|---|
date | Sun, 11 Nov 2007 03:02:50 +0900 |
parents | ba1829a0c788 |
children | ccd1ad69a852 |
files | ChangeLog redit-client-sm.el |
diffstat | 2 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sun Nov 11 01:44:56 2007 +0900 +++ b/ChangeLog Sun Nov 11 03:02:50 2007 +0900 @@ -1,5 +1,8 @@ 2007-11-11 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> + * redit-client-sm.el: redit-unpack-int + 256 以上を取得できなかったのを修正。4バイトぐらい。 + * redit-client-sm.el: redit-*-command REPcommand では 「insert」 なのに ここでは 「write」 なので、時々混乱する。insert に変更。
--- a/redit-client-sm.el Sun Nov 11 01:44:56 2007 +0900 +++ b/redit-client-sm.el Sun Nov 11 03:02:50 2007 +0900 @@ -113,10 +113,16 @@ (redit-pack-int cmd) (redit-pack-int sid) (redit-pack-int eid) (redit-pack-int seq) (redit-pack-int lno) (redit-pack-int siz))) -(defun redit-unpack-int (pkt byte) - (let (num) - (setq num (* byte 4)) - (string-to-char (substring pkt (- num 1) num)))) +(defun redit-unpack-int-loop (pkt pos count) + (if (> count 1) + (+ + (* (redit-unpack-int-loop pkt (- pos 1) (- count 1)) 256) + (string-to-char (substring pkt (- pos 1) pos))) + 0 + )) + +(defun redit-unpack-int (pkt pos) + (redit-unpack-int-loop pkt (* pos 4) 4)) ;; これ使ってる?