□ driver

有关 MudOS 的版本：
早期的 MudOS 是以 0.9.xx.xx 来标明的，自从 0.9.20 以後全面改为 v20.xx
前面的数字代表 major version，後面的数字代表 minor version，alpha/beta
版则在後面加上 a 或 b 及版本数字。
测试版的 driver release 的速度相当的快，大约每一至二星期就
会有新的版本，所有有关 MudOS driver 的讨论，公告事项都可以在 Idea
Exchange 里找到 (ie.imaginary.com 7890)。一般来说, alpha 版的 driver 
都有些新增的功能，而 beta 版则多半是 bug fix，所有新增或修改的相关
资料都可以在 ChangeLog.* 中查到。driver 的原始程式码可由 
ftp.imaginary.com 取得，路径为 pub/LPC/servers/MudOS。

Compile driver：
A. options.h
参考 mudlib release 的 options.h 修改，因为每版 driver 所附的 options.h
都不相同，所以不要直接 copy 盖过去，花点时间一项一项比对。该 #define 的
define，该 #undef 的 undef。 

B. driver 中文化修改：
适用於 0.9.20.xx 到 v22a22 之间的版本，位置跟档案大小可能有些差异， 
不过原理相同。
注：ES2 mudlib 已知可以在 v21c2，v21.6，v21.7b6，v22a22 等版本之 
driver 上使用，理论上来说 0.9.20 之前的 driver 不能用来执行 ES2
mudlib，有关其他 mudlib 的相容性请参考该 mudlib 所附之文件。

1. 在 comm.c 找到以下 function：
static void telnet_neg P2(char *, to, char *, from)
{
  .
  .
<省略>
  .
  .
        default:
            if (ch & 0x80) {   ——┐将这三行删掉以後就 driver 就可以
                continue;          │输入中文了...
            }                  ——┘
  .
  .
<省略>
}                               /* telnet_neg() */


2. 在 ed.c 中找到以下 function：
static void prntln P3(char *, str, int, vflg, int, len)
{
  .
  .
<省略>
  .
  .
        if (*str < ' ' || *str >= DEL) {
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
                改成: ((*str < ' ') && (*str >='\0'))
            switch (*str) {
            case '\t':
                /* have to be smart about this or the indentor will fail */
                *line++ = ' ';
                while ((line - start) % 8)     <--- 8 改成 4
  .
  .
<省略>
  .
  .
}

C. 执行 build.MudOS (v21 之後, 之前的版本请跳到 D)
直接执行 build.MudOS，该程式会自动去测试你的系统并帮你设好 makefile。
执行完毕後跳到 E。

D. 修改 makefile
如果你用的是比较旧的版本 (如v21c2)，请直接修改 makefile (如果用 gcc, 
修改 GNUmakefile。注: 如果你是用 linux，因为 linux 的 cc == gcc, 请
直接改 GNUmakefile)。

E. 执行 make，或是 make install (系统自动安装)
compile 好後应该会有个 driver 和 addr_server 的 binary。有关 addr_server
的功能及用法请参考相关文件。有关 driver 档的执行也请参考相关文件。

其他：
如果你在 compile 好 driver 後又修改 driver 程式的任何一部份 (options.h,
或是其他 .h, .c 档) 请重新 make. (建议你在 make 之前先执行 make clean,
把旧的 object 档清掉)
