LPMUD/
LPMUD/BIN/
LPMUD/DOC/
LPMUD/MUDLIB/
LPMUD/MUDLIB/BANISH/
LPMUD/MUDLIB/D/
LPMUD/MUDLIB/DOC/
LPMUD/MUDLIB/DOC/DOMAINS/
LPMUD/MUDLIB/DOC/EFUN/
LPMUD/MUDLIB/DOC/EXAMPLES/
LPMUD/MUDLIB/DOC/EXAMPLES/ARMOUR/
LPMUD/MUDLIB/DOC/EXAMPLES/CONTAIN/
LPMUD/MUDLIB/DOC/EXAMPLES/FOOD/
LPMUD/MUDLIB/DOC/EXAMPLES/MAGIC/
LPMUD/MUDLIB/DOC/EXAMPLES/MONSTER/
LPMUD/MUDLIB/DOC/EXAMPLES/ROOM/
LPMUD/MUDLIB/DOC/EXAMPLES/WEAPONS/
LPMUD/MUDLIB/FUNCTION/
LPMUD/MUDLIB/INCLUDE/
LPMUD/MUDLIB/INCLUDE/FN_SPECS/
LPMUD/MUDLIB/INCLUDE/SKILLS/
LPMUD/MUDLIB/INFO/
LPMUD/MUDLIB/INHERIT/BASE/
LPMUD/MUDLIB/LOG/
LPMUD/MUDLIB/MANUALS/312/
LPMUD/MUDLIB/NEWS/
LPMUD/MUDLIB/OBJ/PARTY/
LPMUD/MUDLIB/OBJ/SHADOWS/
LPMUD/MUDLIB/OBJECTS/COMPONEN/
LPMUD/MUDLIB/OPEN/
LPMUD/MUDLIB/OPEN/LIBRARY/
LPMUD/MUDLIB/OPEN/PARTY/
LPMUD/MUDLIB/PLAYERS/
LPMUD/MUDLIB/PLAYERS/ZIL/
LPMUD/MUDLIB/ROOM/
LPMUD/MUDLIB/ROOM/CITY/ARENA/
LPMUD/MUDLIB/ROOM/CITY/CREATOR/
LPMUD/MUDLIB/ROOM/CITY/GARDEN/MONST/
LPMUD/MUDLIB/ROOM/CITY/OBJ/
LPMUD/MUDLIB/ROOM/CITY/PUB/
LPMUD/MUDLIB/ROOM/CITY/SHOP/
LPMUD/MUDLIB/ROOM/DEATH/
LPMUD/MUDLIB/ROOM/REGISTRY/
LPMUD/MUDLIB/SECURE/
LPMUD/MUDLIB/SECURE/UDP_CMD_/
LPMUD/MUDLIB/SKILLS/
LPMUD/MUDLIB/SKILLS/FIGHTER/
LPMUD/MUDLIB/SKILLS/THIEF/
LPMUD/MUDLIB/USR/
LPMUD/MUDLIB/USR/CREATORS/
LPMUD/MUDLIB/USR/PLAYERS/
Efun Explode:

This efun has undergone a lot of change, exhibiting quite varied
results depending on the driver. Explode, 'explodes' a string
into an array of strings.  The best way to see differences is to
look at some examples.

Amylaar Driver:

  Explode                   Exploded Array

explode("","a")           ({ "", })
explode("a","a")          ({ "", "", })
explode("aa","a")         ({ "", "", "", })
explode("baa","a")        ({ "b", "", "", })
explode("aba","b")        ({ "a", "a", })
explode("abab","b")       ({ "a", "a", "", })
explode("abc","")         ({ "a", "b", "c", })



312 Driver:

explode("","a")           ({ "", })
explode("a","a")          0 /* should use simul_efun fix!!! */
explode("aa","a")         0
explode("baa","a")        ({ "b", "", "", })
explode("aba","b")        ({ "a", "a", })
explode("abab","b")       ({ "a", "a", })
explode("abc","")         ({ "abc", })

Mudos Driver:

explode("","a")           ({ "", })
explode("a","a")          ({ }) /* should use simul_efun fix!!! */
explode("aa","a")         ({ })
explode("baa","a")        ({ "b", "", "", })
explode("aba","b")        ({ "a", "a", })
explode("abab","b")       ({ "a", "a", })
explode("abc","")         ({ "abc", })


Amylaar explode behaviour can be approximated with a simul_efun
fix, and by adding the delimiter to the string. The exception is
using an empty string, "", as a delimiter.

eg.      Amylaar Driver                  312/Mudos
       explode("abab","b")   ==   explode("abab" +"b","b")

The main reason it has been changed is so the following expression
returns true,

  implode(explode(str,delimiter),delimiter) == str

312 fails, whereas the amylaar doesn't. It is better to use the
amylaar behaviour. So that the mudlib can be used on both, the flag OLD_EXPLODE
has been used. When using the explode efun, esp. in the mainmain mudlib,
do the following,

#ifdef OLD_EXPLODE
  txt_list = explode(txt +"\n","\n");
#else
  txt_list = explode(txt,"\n");
#endif /* OLD_EXPLODE */

This will allow the mudlib to be moved between 312 and amylaar.

                    Zilanthius