Subject: Re: In-db parsing

From: Albert Paul Jimenez III <[email-masked]>
Date: Fri, 7 May 1993 11:17:30 -0700

Awhile back, on (now defunct) NeuroMOO, I implemented this in order to be
able to do command-line pre-processing (ie. handle stuff before the commandline got to it) so it IS possible (EASY EVEN!). What I did was this:
in $in_db_parsing_player:confunc, set up a read() loop like:
  cmdline="";
  while (cmdline!="@quit")
    cmdline=read(); /* or was that read(cmdline) ? whatever... */
    fork(0)
      this:parse(cmdline);
    endfork
  endwhile
whoops! in the while() check, also check for connectedness.....
then, get the :parse verb and everything it depends on from the generic puppet
on LambdaMOO.... there are 2 problems that will arise: 
  1) $command_utils:do_huh line 8: subst/caller/caller.location
     this is becuase i think this verb expects to be called by a room, not a person... eitherway, this is necessary, or it will bomb on bad input. and its a
booger to track down.
  oh.. also, the verb needed isnt :parse its :do on #7680@LambdaMOO
  2) you wont be able to execute !x verbs. obvisously. even a wizzed verb isnt
extremely useful here... there are solutions to this, but theyre really hacks
(ie. switch the perm bit on teh verb, fork (0) switch perms BACK, endfork, call verb. ) and are NOT real secure either... the real answer lies in version
1.8 of the server which will make wizcalls override the !x bit.

enjoy! and I hoped I helped...

   --Zachary
     (@LambdaMOO, groan, Andersons, tsunami IV, Genocide, DR,...)