|
|
1.1 root 1: #
2: # arrayprocs.tcl --
3: #
4: # Extended Tcl array procedures.
5: #
6: #------------------------------------------------------------------------------
7: # Copyright 1992 Karl Lehenbauer and Mark Diekhans.
8: #
9: # Permission to use, copy, modify, and distribute this software and its
10: # documentation for any purpose and without fee is hereby granted, provided
11: # that the above copyright notice appear in all copies. Karl Lehenbauer and
12: # Mark Diekhans make no representations about the suitability of this
13: # software for any purpose. It is provided "as is" without express or
14: # implied warranty.
15: #------------------------------------------------------------------------------
16: # $Id: arrayprocs.tcl,v 2.0 1992/10/16 04:51:54 markd Rel $
17: #------------------------------------------------------------------------------
18: #
19:
20: #@package: TclX-ArrayProcedures for_array_keys
21:
22: proc for_array_keys {varName arrayName codeFragment} {
23: upvar $varName enumVar $arrayName enumArray
24:
25: if ![info exists enumArray] {
26: error "\"$arrayName\" isn't an array"
27: }
28:
29: set searchId [array startsearch enumArray]
30: while {[array anymore enumArray $searchId]} {
31: set enumVar [array nextelement enumArray $searchId]
32: uplevel $codeFragment
33: }
34: array donesearch enumArray $searchId
35: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.