diff --git a/scsh/xanadu/b-tree.scm b/scsh/xanadu/b-tree.scm index d4f921b..02e92db 100644 --- a/scsh/xanadu/b-tree.scm +++ b/scsh/xanadu/b-tree.scm @@ -175,14 +175,19 @@ (vector-set! side-tree i new-node) (set! i (vector-length side-tree)))) - ((let ((data (((vector-ref side-tree i) 'get-data)))) + ((let ((data (((vector-ref side-tree i) 'get-data))) + (data2 (((vector-ref side-tree (if (< (- i 1)(vector-length side-tree)) + (+ i 1) + i) + ) 'get-data)))) (or ;;(and (string=?) ;; (string>? str data)) (and (string? data) (string=? data "")) (and (string? data) + (string? data2) (string? str data))) + (string>? str data2)));;FIXME data2! (let ((left-and-right (vector-median i side-tree))) (let ((new-node (make-b-tree-node (car left-and-right) (cadr left-and-right)))) ((new-node 'set-data!) str)