Changeset 5166 in project


Ignore:
Timestamp:
07/22/07 07:29:42 (13 years ago)
Author:
Ivan Raikov
Message:

Bug fixes in set-out-edges! and set-in-edges! [thanks to Andreas Scholta].

Location:
digraph
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • digraph/tags

    • Property latest changed from 1.4 to 1.5
  • digraph/trunk/digraph-eggdoc.scm

    r4868 r5166  
    99
    1010     (history
     11      (version "1.5" "Bug fixes in set-out-edges! and set-in-edges! [thanks to Andreas Scholta]")
    1112      (version "1.4" "License upgrade to GPL v3")
    1213      (version "1.3" "Updated the roots procedure to match the documentation")
     
    164165
    165166A full copy of the GPL license can be found at
    166 <http://www.gnu.org/licenses/>."))))
     167<http://www.gnu.org/licenses/>.")))))
    167168
    168169(if (eggdoc->html doc) (void))
  • digraph/trunk/digraph.scm

    r4868 r5166  
    102102      (match elst
    103103             (() (dynvector-set! pred j ax))
    104              (((i1 . _) . es)  (let ((e (car elst)))
    105                                  (remove-pred es j (if (fx= i1 i) es (cons e es)))))
     104             (((i1 _ _) . es)  (let ((e (car elst)))
     105                                 (remove-pred es j (if (fx= i1 i) ax (cons e ax)))))
    106106             (else   (digraph:error 'remove-pred ": invalid edge list " elst))))
    107107
    108108    (define (remove-edge e)
    109109      (match e
    110              ((i1 j . _)  (begin
     110             ((i1 j _)  (begin
    111111                            (if (not (fx= i i1)) (digraph:error 'set-out-edges))
    112112                            (remove-pred (dynvector-ref pred j) j (list))))
     
    128128    (define (remove-succ elst i ax)
    129129      (match elst
    130              (() (dynvector-set! pred j ax))
     130             (() (dynvector-set! succ i ax))
    131131             (((_ j1 _) . es)  (let ((e (car elst)))
    132                                  (remove-succ es i (if (fx= j1 j) es (cons e es)))))
     132                                 (remove-succ es i (if (fx= j1 j) ax (cons e ax)))))
    133133             (else   (digraph:error 'remove-succ ": invalid edge list " elst))))
    134134
    135135    (define (remove-edge e)
    136136      (match e
    137              ((i j1 . _)  (begin
     137             ((i j1 _)  (begin
    138138                            (if (not (fx= j j1)) (digraph:error 'set-in-edges))
    139                             (remove-succ (dynvector-ref pred i) i (list))))
     139                            (remove-succ (dynvector-ref succ i) i (list))))
    140140             (else (digraph:error 'remove-edge ": invalid edge " e))))
    141141
     
    224224        ((foreach-edge)      foreach-edge)
    225225        ((roots)             (lambda ()
    226                                (filter-map (lambda (n) (if (null? (in-edges (car n))) (car n) #f))
     226                               (filter-map (lambda (n)
     227                                             (if (null?
     228                                                  ;; check only edges from other nodes
     229                                                  (remove (o (cut fx= <> (car n)) car)
     230                                                          (in-edges (car n))))
     231                                                 (car n)
     232                                                 #f))
    227233                                           (get-nodes))))
    228234        ((debug)             (list (cons nodes (dynvector->list nodes))
     
    231237        (else
    232238          (digraph:error 'selector ": unknown message " selector " sent to a graph"))))))
    233 
  • digraph/trunk/digraph.setup

    r4868 r5166  
    1818
    1919  ; Assoc list with properties for your extension:
    20   `((version 1.4)
     20  `((version 1.5)
    2121    (documentation "digraph.html")
    2222    ,@(if has-exports? `((exports "digraph.exports")) (list)) ))
Note: See TracChangeset for help on using the changeset viewer.