Hackfut Security File Manager
Current Path:
/usr/lib64/tcl8.5/tclx8.4
usr
/
lib64
/
tcl8.5
/
tclx8.4
/
📁
..
📄
arrayprocs.tcl
(1.6 KB)
📄
autoload.tcl
(2.22 KB)
📄
buildhelp.tcl
(15.61 KB)
📄
compat.tcl
(9.8 KB)
📄
convlib.tcl
(3.86 KB)
📄
edprocs.tcl
(1.95 KB)
📄
events.tcl
(1.03 KB)
📄
fmath.tcl
(2.19 KB)
📄
forfile.tcl
(1.4 KB)
📄
globrecur.tcl
(3.11 KB)
📄
help.tcl
(10.36 KB)
📄
libtclx8.4.so
(150.29 KB)
📄
pkgIndex.tcl
(77 B)
📄
profrep.tcl
(5.1 KB)
📄
pushd.tcl
(1.83 KB)
📄
setfuncs.tcl
(2.92 KB)
📄
showproc.tcl
(1.46 KB)
📄
stringfile.tcl
(1.38 KB)
📄
tcllib.tcl
(4.32 KB)
📄
tclx.tcl
(2.05 KB)
Editing: setfuncs.tcl
# # setfuncs -- # # Perform set functions on lists. Also has a procedure for removing duplicate # list entries. #------------------------------------------------------------------------------ # Copyright 1992-1999 Karl Lehenbauer and Mark Diekhans. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided # that the above copyright notice appear in all copies. Karl Lehenbauer and # Mark Diekhans make no representations about the suitability of this # software for any purpose. It is provided "as is" without express or # implied warranty. #------------------------------------------------------------------------------ # $Id: setfuncs.tcl,v 1.1 2001/10/24 23:31:48 hobbs Exp $ #------------------------------------------------------------------------------ # #@package: TclX-set_functions union intersect intersect3 lrmdups # # return the logical union of two lists, removing any duplicates # proc union {lista listb} { return [lrmdups [concat $lista $listb]] } # # sort a list, returning the sorted version minus any duplicates # proc lrmdups list { if [lempty $list] { return {} } set list [lsort $list] set last [lvarpop list] lappend result $last foreach element $list { if ![cequal $last $element] { lappend result $element set last $element } } return $result } # # intersect3 - perform the intersecting of two lists, returning a list # containing three lists. The first list is everything in the first # list that wasn't in the second, the second list contains the intersection # of the two lists, the third list contains everything in the second list # that wasn't in the first. # proc intersect3 {list1 list2} { set la1(0) {} ; unset la1(0) set lai(0) {} ; unset lai(0) set la2(0) {} ; unset la2(0) foreach v $list1 { set la1($v) {} } foreach v $list2 { set la2($v) {} } foreach elem [concat $list1 $list2] { if {[info exists la1($elem)] && [info exists la2($elem)]} { unset la1($elem) unset la2($elem) set lai($elem) {} } } list [lsort [array names la1]] [lsort [array names lai]] \ [lsort [array names la2]] } # # intersect - perform an intersection of two lists, returning a list # containing every element that was present in both lists # proc intersect {list1 list2} { set intersectList "" set list1 [lsort $list1] set list2 [lsort $list2] while {1} { if {[lempty $list1] || [lempty $list2]} break set compareResult [string compare [lindex $list1 0] [lindex $list2 0]] if {$compareResult < 0} { lvarpop list1 continue } if {$compareResult > 0} { lvarpop list2 continue } lappend intersectList [lvarpop list1] lvarpop list2 } return $intersectList }
Upload File
Create Folder