home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / cbutils.tcl < prev    next >
Text File  |  1996-05-29  |  1KB  |  44 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1995
  4. #
  5. #      File:           @(#)cbutils.tcl    1.1
  6. #      Author:         
  7. #      Description;    Some helpfull functions used by class browser.
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cbutils.tcl    1.1   19 Oct 1995 Copyright 1995 Westmount Technology
  10.  
  11. # Returns a new list consisting of all elements of lst. Elements that occur
  12. # more than once in lst, occur only once in the returned list.
  13. proc lrmdoubles {lst} { 
  14.     set newlist ""
  15.     while {[llength $lst]} { 
  16.         set elem [lindex $lst 0]
  17.         lappend newlist $elem
  18.         set lst [lreplace $lst 0 0]
  19.         set idx [lsearch -exact $lst $elem]
  20.         while {$idx != -1} {
  21.             set lst [lreplace $lst $idx $idx]
  22.             set idx [lsearch -exact $lst $elem]
  23.         }
  24.     }
  25.     return $newlist
  26. }
  27.  
  28. # Returns Item <itemNr> in CompLabel <labelType> in Component <component>
  29. #
  30. proc Component::getItem {component labelType} {
  31.     foreach label [$component labels] {
  32.         if {[$label type] == $labelType} {
  33.             if {[llength [$label itemRefs]] == 0} {
  34.                 return [ORB::nil]
  35.             }
  36.             set itemRef [lindex [$label itemRefs] 0]
  37.             return [$itemRef item]
  38.         }
  39.     }
  40.     return [ORB::nil]
  41. }
  42.  
  43.