OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [start/] [insight/] [libgui/] [library/] [hooks.tcl] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
# hooks.tcl - Hook functions.
2
# Copyright (C) 1997, 1999 Cygnus Solutions.
3
# Written by Tom Tromey <tromey@cygnus.com>.
4
 
5
proc add_hook {hook command} {
6
  upvar \#0 $hook var
7
  lappend var $command
8
}
9
 
10
proc remove_hook {hook command} {
11
  upvar \#0 $hook var
12
  set var [lremove $var $command]
13
}
14
 
15
proc define_hook {hook} {
16
  upvar \#0 $hook var
17
 
18
  if {! [info exists var]} then {
19
    set var {}
20
  }
21
}
22
 
23
proc run_hooks {hook args} {
24
  upvar \#0 $hook var
25
  set mssg_list {}
26
  foreach thunk $var {
27
    if {[catch {uplevel \#0 $thunk $args} mssg]} {
28
      set errStr "hook=$thunk args=\"$args\" $mssg\n"
29
      lappend mssg_list $errStr
30
    }
31
  }
32
  if {$mssg_list != ""} {
33
    error $mssg_list
34
  }
35
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.