summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/genStubs.tcl80
1 files changed, 77 insertions, 3 deletions
diff --git a/tools/genStubs.tcl b/tools/genStubs.tcl
index f11739e..73770ae 100644
--- a/tools/genStubs.tcl
+++ b/tools/genStubs.tcl
@@ -8,7 +8,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: genStubs.tcl,v 1.11 2002/05/08 12:21:39 davygrvy Exp $
+# RCS: @(#) $Id: genStubs.tcl,v 1.12 2002/08/31 06:09:46 das Exp $
package require Tcl 8
@@ -122,7 +122,7 @@ proc genStubs::hooks {names} {
# Arguments:
# index The index number of the interface.
# platform The platform the interface belongs to. Should be one
-# of generic, win, unix, or mac.
+# of generic, win, unix, or mac, or macosx or aqua or x11.
# decl The C function declaration, or {} for an undefined
# entry.
#
@@ -226,6 +226,15 @@ proc genStubs::addPlatformGuard {plat text} {
mac {
return "#ifdef MAC_TCL\n${text}#endif /* MAC_TCL */\n"
}
+ macosx {
+ return "#ifdef MAC_OSX_TCL\n${text}#endif /* MAC_OSX_TCL */\n"
+ }
+ aqua {
+ return "#ifdef MAC_OSX_TK\n${text}#endif /* MAC_OSX_TK */\n"
+ }
+ x11 {
+ return "#if !(defined(__WIN32__) || defined(MAC_TCL) || defined(MAC_OSX_TK)) /* X11 */\n${text}#endif /* X11 */\n"
+ }
}
return "$text"
}
@@ -615,6 +624,30 @@ proc genStubs::forAllStubs {name slotProc onAll textVar \
set emit 1
}
}
+ #
+ # "aqua" and "macosx" and "x11" are special cases,
+ # since "macosx" always implies "unix" and "aqua",
+ # "macosx", so we need to be careful not to
+ # emit duplicate stubs entries for the two.
+ #
+ if {[info exists stubs($name,aqua,$i)]
+ && ![info exists stubs($name,macosx,$i)]} {
+ append text [addPlatformGuard aqua \
+ [$slotProc $name $stubs($name,aqua,$i) $i]]
+ set emit 1
+ }
+ if {[info exists stubs($name,macosx,$i)]
+ && ![info exists stubs($name,unix,$i)]} {
+ append text [addPlatformGuard macosx \
+ [$slotProc $name $stubs($name,macosx,$i) $i]]
+ set emit 1
+ }
+ if {[info exists stubs($name,x11,$i)]
+ && ![info exists stubs($name,unix,$i)]} {
+ append text [addPlatformGuard x11 \
+ [$slotProc $name $stubs($name,x11,$i) $i]]
+ set emit 1
+ }
}
if {$emit == 0} {
eval {append text} $skipString
@@ -637,8 +670,49 @@ proc genStubs::forAllStubs {name slotProc onAll textVar \
append text [addPlatformGuard $plat $temp]
}
}
+ # Again, make sure you don't duplicate entries for macosx & aqua.
+ if {[info exists stubs($name,aqua,lastNum)]
+ && ![info exists stubs($name,macosx,lastNum)]} {
+ set lastNum $stubs($name,aqua,lastNum)
+ set temp {}
+ for {set i 0} {$i <= $lastNum} {incr i} {
+ if {![info exists stubs($name,aqua,$i)]} {
+ eval {append temp} $skipString
+ } else {
+ append temp [$slotProc $name $stubs($name,aqua,$i) $i]
+ }
+ }
+ append text [addPlatformGuard aqua $temp]
+ }
+ # Again, make sure you don't duplicate entries for macosx & unix.
+ if {[info exists stubs($name,macosx,lastNum)]
+ && ![info exists stubs($name,unix,lastNum)]} {
+ set lastNum $stubs($name,macosx,lastNum)
+ set temp {}
+ for {set i 0} {$i <= $lastNum} {incr i} {
+ if {![info exists stubs($name,macosx,$i)]} {
+ eval {append temp} $skipString
+ } else {
+ append temp [$slotProc $name $stubs($name,macosx,$i) $i]
+ }
+ }
+ append text [addPlatformGuard macosx $temp]
+ }
+ # Again, make sure you don't duplicate entries for x11 & unix.
+ if {[info exists stubs($name,x11,lastNum)]
+ && ![info exists stubs($name,unix,lastNum)]} {
+ set lastNum $stubs($name,x11,lastNum)
+ set temp {}
+ for {set i 0} {$i <= $lastNum} {incr i} {
+ if {![info exists stubs($name,x11,$i)]} {
+ eval {append temp} $skipString
+ } else {
+ append temp [$slotProc $name $stubs($name,x11,$i) $i]
+ }
+ }
+ append text [addPlatformGuard x11 $temp]
+ }
}
-
}
# genStubs::emitDeclarations --