Reputation: 766
I have an object with a function named open
that need to call global open
.
obj: make object! [
open: func [fn] [
client: open fn ...
]
]
This obiously fails with stack overflow...
So, how can access global open
inside object open
?
(Please don't tell me "change name" :-)
Upvotes: 3
Views: 111
Reputation: 41765
In Rebol 3, you can use lib/open
to refer to the built-in open
function.
lib
is an object (which in Rebol-lingo is also sometimes called a "context") which holds all publicly exported functions, including built-in functions. The full name for the lib
context is system/contexts/lib
(so you could also use system/contexts/lib/open
to refer to the open
built-in), but because that's a mouthful, the convenience shortcut lib
is provided as well.
Also see Brian Hawley's answer regarding "user-defined words" and Carl Sassenrath's post on the basic contexts of R3 for more technical detail.
Upvotes: 5
Reputation: 4886
In Rebol 2, you can use system/words/open
. If you look at the source of the Rebol 2 protocols, you'll see short cuts defined to these words so that they don't conflict with the same named words in the protocols.
Upvotes: 3