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/
There are two efuns for reading files. On msdos version they both have
problems.  Maximum string lengths limit you to about 8KB blocks.
(about 8000 characters).

read_file(file,start, block),

This will tend to fail when the start line gets above a 1000 lines.
It causes an exception 14 error and crashes the driver. I don't bother
using it. When using it you have to consider string length restriction,
are you reading 500 lines with an av. of 16 chars per line, or 100 lines
with 80 chars per line. It also does not read escape characters. It is hard
judge where the end-of-file. What is really needed is a nice fn that
will give you the number of '\n' in a file.


read_bytes(file, start_byte, finish_byte),

When using it on MSDOS you must remember that the start byte file pointer
counts the <cr-lf> eol as 2 bytes, but the finish byte doesn't. Confusing!
It took me ages to figure it out.

Reason, Olavs hack to remove <LF> character.

File on disk is:

txt1\r\n\rtxt2\r\ntxt3\r\ntxt4\r\n
          ^
          fp

fp counts \r when positioning.


When read_bytes() grabs the txt from the fp position, it ignores the
carriage returns.

txt2\ntxt3\n\r\r <- it counts this as rubbish and ignores it.
^          ^
fp         finish byte


So if you want to get the fp for txt4. You have to count the rubbish
characters for MSDOS, it is equa to 1 byte per line of txt. So my 
hack is something like this,


  fp = finish_byte; /* ok for unix */
#ifdef MSDOS
  fp += explode(txt +"\n","\n") - 1;
#endif



file_size(),

The same reason as the read_bytes hack, file_size ignores the carriage
return. So file size can vary.