Subject: calling a command line verb from a verb

From: [email-masked]
Date: Wed, 23 Jun 1993 10:45:05 -0700

Is there any way to call a command line verb from within a verb?

-- Amy

---

From: Judy Anderson <[email-masked]>
Date: Wed, 23 Jun 1993 11:00:32 -0700

Nope.  If it's +x, you can call it, by setting up dobj, iobj, prepstr,
etc etc ad nauseum and then just calling it like a regular verb.  See
#26026's remembered object system for details (#26026:my_huh).  If the
verb is !x you're out of luck.

---

From: Roger Crew <[email-masked]>
Date: Mon, 28 Jun 1993 11:36:39 -0700

>   Nope.  If it's +x, you can call it, by setting up dobj, iobj, prepstr,

Note that you never really know whether a command verb is relying 
on dobj/prepstr/iobj, argstr or even args.  Granted you can just look 
at the code, but if someone later decides to change the verb's parsing 
portion to do work differently, the other verbs that call it will 
probably lose.

If you're going to be using the functionality of a command verb from a
program, you're best off splitting that functionality into a separate
(this none this +x) verb and calling the latter verb when you need to 
use it from a program.

>   If the verb is !x you're out of luck.

Well, modulo really gross hacks that involve wizardly code bashing the
verb to be temporarily +x, but I guess that goes without saying.
--
Roger Crew
Internet:   [email-masked]
LambdaMOO:  Rog

---

From: [email-masked]
Date: Tue, 29 Jun 1993 09:19:54 -0700

Your message dated: Mon, 28 Jun 93 11:36:39 PDT
> verb to be temporarily +x, but I guess that goes without saying.

Out of curiosity...
Is there documentation anywhere on how +x and !x verbs are handled
differently internally?

Does the x bit exist just so you can prevent people from executing
verbs if you want to, or is there some other purpose?

Actually, I don't mind too much not being able to call !x verbs.
Here's why I'm poking around at this stuff:

I'd like to write a function that given an arbitrary verb, will check the
current environment looking for either built-in, a command line or non-command
line verb by that name and then call it properly.  Arguments are provided in a
command line style.  So given any of the following, it will do the right
thing:

random 5
say hello
room_announce {me} "hello again"

For inspiration, I've been poking around at code on #26026@LambdaMOO as Judy
suggested, and also looking at generic puppet.  Any other hints?
I'm beginning to think I can actually make this work....  :-)

-- Amy

---

From: Pavel Curtis <[email-masked]>
Date: Tue, 29 Jun 1993 10:37:28 -0700

> Date:	Tue, 29 Jun 1993 09:19:54 -0700
> From:	[email-masked]
> 

It was installed to make it possible to prevent certain verbs from being called
from other verbs, usually because the !x verb made certain security checks that
assumed it was being called as a command.