reslog 更新记录

2005-05-08	3.05 版
	问题修正。
	 1. 先检查有没有标准输入和标准输出可用，若没有则做一个暂用的替代品，以
	    解决在 MSWin32 下，没有标准输入可用时，做标准输入转向会产生错误的
	    问题。在 CPANPLUS 下做 make test 时，会先关闭标准输入，就会造成这
	    个问题。

2005-05-08	3.04 版
	 1. 修正载入 File::MMagic 时的别字，导致 File::MMagic 无法载入。

2005-05-08	3.03 版
	 1. 重写 flock() 的做法：不是普通档案的档案操作，不再锁档。由外来程式
	    处理档案操作时，会暂时解除锁定。自行读写普通档案时，即使是昵名的暂
	    存档，也一律锁档。这样简化了锁档的问题，外来程式不管怎么存取，都不
	    是问题了。
	 2. Makefile.PL: 加上 MY 套件，加上 make upgrade 以移除旧版档案，加上
	    constants() 与 manifypods() 方法，以改变安装目录。现在程式会安装回
	    /sbin 目录，说明档则分到 manpage 第八区。这样才对。
	 3. 更新内建 POD 说明中的 BUG 和 TODO 两节。

2005-05-02	3.02 版
	 1. 加上 _private::Resolver 和 _private::Resolver::Threaded ，反查程式
	    和主程式分开，独立作业，以便日后要改写为其它反查程式时（如 GeoIP
	    ），不需改写太多东西。
	 2. 暂时工作档的说明修正。
	 3. 档案型态不明时，原来显示 $type ，应显示 $_ ，已修正。
	 4. 加上测试 31-39 ，以测试 --suffix 及 --trim-suffix 的功能。
	 5. 在 cygwin 上成功测试执行。
	 6. 测试程式加上引号，以便在含空白的目录中测试无误。
	 7. 所需的 Perl 版本改为 5.8.0 。 5.7.2 是研发版，那样设没有意义。

2005-05-01	3.0102 版
	 1. check_magic() 、 check_gzip() 及 check_bzip2() 直接检查 eval() 的
	    传回值，以取代存在 $ok 后再检查。
	 2. 加上 %CONF 存放设定值。
	 3. $THIS_FILE 、 $SHORTHELP 和 $VERBOSE 由 use vars qw(...) 改为
	    our (...) ，简化程式。
	 4. 加上 DEFAULT_PROGBAR 处理进度列显示与否的预设值。

2005-05-01	3.0101 版
	劳动节万岁！
	 1. 套件名称由 ResLog 改回 main ，以免和 CPAN 的套件弄混。
	 2. 类别名称由 ResLog::* 改为 _private::* ，以免和 CPAN 的套件弄混。
	 3. check_io() 原来传回类型常数，改传回输出入介面物件，以便直接产生输
	    出入处理器。 new_read() 、 new_write() 及 new_append() 改由输出入
	    介面物件产生输出入处理器物件。停用 IO_* 常数。
	 4. 加上 use_flock() 以判别输出入处理器能不能用 flock() ，以取代直接检
	    查。目前 MSWin32 上执行 bzip2 程式时，不能用 flock() 。
	 5. 停用 IO_* 常数。
	 6. whereis() 改用 ExtUtils::MakeMaker MM->maybe_command() 寻找执行程
	    式。这是参考 CPAN::FirstTime 的做法。

2005-04-26
	 1. Changes: 档案重新编辑，一行 60 个字元放大到 79 个字元，以便阅读。

2005-04-26	3.01 版
	错误修正。
	 1. --suffix 与 --trim-suffix 无法正常运作。我在 GetOptions() 里误把
	    $_[0] 当 $_[1] 使用，而且完全没有发现！ ^^; 现已修正。
	 2. 修正说明文件的错别字（ rewrite 应为 rewrote ）。
	 3. 修正 Changes.zh-cn 未随 Changes.zh-tw 更新之误。

2005-04-26	3.00 版
	 1. README 说明更新。
	 2. HTML 说明文件更新。
	 3. 上传到 CPAN 。
	 4. HTML 文件更新，以符合 W3C WCAG 无障碍网页规范 1.0 三 A 级规定。

2005-04-26	2.9901 版
	 1. 重写 INSTALL 安装说明。
	 2. 加上 UPGRADE 升级说明。

2005-04-25
	 1. 加上 Module::Signature SIGNATURE gpg 签章档，停用外附签章档。
	 2. 加上测试程式。
	 3. 因为有测试程式，修正了很多错误。

2005-04-24	2.99 版
	这是物件导向新版。我从头开始重写整个程式。
	 1. 以物件导向模式，从头重写。
	 2. 加上 ithread 多线程支援，可同时反查多个 IP ，大幅加快执行速度。本
	    功能需要 Perl 5.7.2 ithread 线程支援。新增 --num-threads 参数，以
	    设定本功能。你可以用 -d -d 观察多线程作业。
	 3. 支援使用 gzip 程式、 Compress::Bzip2 及 bzip2 程式。这是物件导向的
	    好处：记录的存取，现在都透过一个一致的输出入界面，因此，很容易撰写
	    新的输出入界面模组。
	 4. 新增选项 --trim-suffix ，在加上档尾之前，先先去除某个档尾，以便
	    reslog 能和其他记录处理程式一起作业。
	 5. 若未安装 File::MMagic 时，可使用 file 程式代替，或由档尾判别档案型
	    态。
	 6. 在 UNIX 下，使用 Term::Size 显示进度条。在 MSWin32 下会改用
	    Win32::Console 。若未安装以上模组， reslog 不会显示进度条，但仍可
	    正常运作。
	 7. 以往 reslog 一行一行读档、反查、存档，现在改先读过所有的记录档，搜
	    集要反查的所有 IP ，一口气反查后，再一起把记录档的 IP ，用反查结果
	    取代后存档。
	 8. 程式和专案名称，由 reslog.pl 改名为 reslog 。很多地方不能用含点 .
	    的专案名称（如 SourceForge ）。对 UNIX 来说，程式名称用 reslog 就
	    够了。而且 在 MSWin32 下，也不可能依副档名，从档案总管直接点选
	    reslog 执行，况且 MSWin32 下还有一个 pl2bat 可以转成 reslog.bat ，
	    比用副档名更方便。
	 9. 安装程式原来用我自己写的 Install.PL ，改用 Perl 的标准安装程式
	    ExtUtils::MakeMaker 。依标准程序作业是好事。 Perl 的
	    ExtUtils::MakeMaker 比 GNU 的 autoconf 能跨更多平台。在
	    ExtUtils::MakeMaker 下，原先 UNIX 下安装到 /usr/sbin ，现在改安装
	    到 /usr/bin 。不过其实 reslog 也不用安装就是了。 :p
	10. 配合 Perl 模组的惯例，版本号码由三个数字（如 2.1.0 ）改为两个数字
	    （如 3.00 ）。
	11. 配合 ExtUtils::MakeMaker 的惯例， ChangeLog 改名为 Changes 。

2003-01-04
	 1. 修正档案操作的档尾读取检查，改用 defined() 。

2002-11-13
	 1. 统计讯息分行，以使程式码易於阅读。
	 2. 按 arclog.pl 的方式重写 open_src() ，以便用 gzip 和 bzip2 程式压缩
	    。

2002-11-12
	 1. RELEASE_NOTES 改名为 ChangeLog 。
	 2. 加上 AUTHORS 。
	 3. 加上 THANKS 。
	 4. 改写参数检查的逻辑。
	 5. 修正数个 $WORKING_SRC 用 tempfile 开档，却未锁档的错误。
	 6. 按 perlstyle(1) 的规定说明，修正几个函数名称与函数括弧间多余的空白
	    。
	 7. 删除 slice 与 catfile 后多余的括弧。

2002-10-28
	 1. 修正 $WORKING_RES 开档时未锁档的问题。 $WORKING_RES 关档时会解除锁
	    定。在某些作业系统上（如 Linux ），可以解封之前没有锁定的档案，但
	    在某些作业系统上（如 MSWin32 ），若要解封之前没有锁定的档案，会造
	    成执行错误。 $WORKING_RES 其实不需要锁档。它是匿名的暂存工作档，没
	    有档名，只有执行的程式绪自己读写得到。除非跑多执行绪程式，否则完全
	    没有同时写入的风险，而本程式不是多执行绪的程式。我之所以锁档，只是
	    为了维持程式写作风格的统一而已，没有其她原因。（感谢 Chen-hsiu
	    Huang <chenhsiu@gens.dhs.org> 回报此问题。）

2002-09-28
	 1. 改先用 File::Magic 或 file 程式来检查档案型态，最后才用档尾检查。
	 2. 加上 check_file_type() ，依序以 File::Magic 、 file 或档尾来判断档
	    案格式。
	 3. 加上 check_gzip() 来侦测 gzip 压缩的方法。
	 4. 加上 check_bzip2() 来侦测 bzip2 压缩的方法。

2002-09-18	2.1.0dev2 版
	申请 SourceForge 的记念版。这是我第一次向 SourceForge 申请架设专案。
	^_*' 主要校正说明文件的错误，并把 SourceForge 的专案加入程式的下载网址
	中。
	 1. 恢复旅舍依玛上的官方网页。
	 2. 前版原为 2.1.0-dev1 版，为统一起见，改为 2.1.0dev1 版。
	 3. 程式申请到 SourceForge 专案，开始上传至 SourceForge 上。
	 4. 架设 SourceForge 专案虚拟主机。
	 5. 文件中加入 SourceForge 作为官方网站与下载来源。
	 6. 说明文件校正。校正处颇多，不及备载，略。
	 7. HTML 说明书改写为 XHTML 1.1 规格。

2002-08-31	2.1.0dev1 版
	隔一年后改版重写，以在 Perl 5.8.0 下执行。
	 1. 档案代码 (filehandles) 改存在整体 (global) 变数中。这样写才对。原
	    来从 STDIN 复制出新的档案代码，再设定的做法，本来就有问题。那样能
	    在 Perl 5.6.1 下执行，但无法在 Perl 5.8.0 下执行，因为复制出的新档
	    案代码是常数，不能设定。
	 2. 依 perlstyle(1) 内所载的 Perl 程式写作风格，将内缩由一个定位字元
	    (Tab) 改成四个空格，让程式更好读。
	 3. 档案操作错误处理程式，原来用「 || 」，依 perlop(1) 所载的建议，改
	    用低优先性的逻辑算符「 or 」。因为改用「 or 」，档案处理函式中多余
	    的括弧，也删掉了。
	 4. 繁体中文档案的档尾由「 .b5 」改为「 .zh-tw 」，简体中文档案的档尾
	    由「 .gb 」改为「 .zh-cn 」，以符合 RFC-3066 、 ISO 639:1988 、
	    ISO 3066-1 语言代码的标准。
	 5. 发行档加上 PGP 签名。
	 6. 加上 bzip2 版本的发行档。

2001-09-03	2.0.2 版
	 1. 修正将档案处理 File Handle 当成私有变数来传递，导致档案处理被错误
	    修改的错误。

2001-09-01	2.0.1 版
	 1. 修正反查结果快取 %NAMES 不是全域变数的错误，以在处理多档时，可在不
	    同档案间累积反查快取结果。
	 2. 修正英文 HTML 说明档中，连结网址没有使用绝对网址的错误。

2001-06-29	2.0.0 版
	第一个公开版本。
	 1. 加上中英文标准档头。
	 2. 使用 Getopt::Long ，取消自己写的参数分析函式。 
	 3. 使用 File::Spec::Functions 来做档名处理，使用自订的 rel2abs 。
	 4. 使用 Cwd 取得目前工作目录。
	 5. 使用 IO::Handle 的 autoflush ，在侦错模式下单独对 STDOUT 做
	    autoflush 。
	 6. 使用 File::Temp 做暂时工作档，在暂时工作档上进行所有的工作，以减少
	    占用原记录档和结果档的时间。
	 7. 使用 Compress::Zlib 读取压缩档。
	 8. 加上自订的 rel2abs() ，将相对路径转为绝对路径。
	 9. 加上 progress_bar() ，以图形显示目前进度。
	10. 加上 res_log() ，以递回处理多档。
	11. 加上 open_src() 和 save_res() ，以处理开档存档。
	12. 加上 POD 说明。
	13. 加上版本记录。
	14. 加上读我档案。
	15. 加上 GNU 版权说明。
	16. 加上安装指南。
	17. 加上 Install.PL 自动安装程式。

2001-01-21	1.3.1 版
	 1. 只在侦错模式下做 autoflush 。
	 2. 将简式档头改成标准档头。

2001-01-07	1.3.0 版
	 1. 在详细执行讯息中加上 [目前笔数/总笔数] 。

2000-??-??	1.2.0 版
	 1. 使用自订的参数分析子程式 parse_args() 。

2000-??-??	1.1.0 版
	 1. 加上处理暂时工作档的参数 --usetmp 。
	 2. 加上可以更改附加档名的参数 --suffix 。
	 3. 加上显示详细讯息的参数 --debug 。

2000-12-22	1.0.0 版
	初版。
