diff options
Diffstat (limited to 'tools/genStubs.tcl')
-rw-r--r-- | tools/genStubs.tcl | 80 |
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 -- |