# HG changeset patch # User gongo # Date 1194717770 -32400 # Node ID 9e43cec05dc58a813d97e055bc8d7f72a4cb6130 # Parent ba1829a0c788c447dbd1380ff382fb2ed7120e55 fix redit-unpack-int() diff -r ba1829a0c788 -r 9e43cec05dc5 ChangeLog --- 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 + * redit-client-sm.el: redit-unpack-int + 256 以上を取得できなかったのを修正。4バイトぐらい。 + * redit-client-sm.el: redit-*-command REPcommand では 「insert」 なのに ここでは 「write」 なので、時々混乱する。insert に変更。 diff -r ba1829a0c788 -r 9e43cec05dc5 redit-client-sm.el --- 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)) ;; これ使ってる?