□ 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。
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 档清掉)
尊重作者 转载请注明出处52mud.com