ChangeLog_chenall.txt

(25 KB) Pobierz
2011-12-30
	1.添加菜单热键功能接口,可以通过外部命令来增加热键功能
	  Add menu hotkey function interface。

2011-12-26
	1.改善菜单自动编号。improve autonumber. 

2011-12-13 
	1.修正grub_sprintf函数%d不能正确显示负数的bug.

2011-12-12  command 'if' added '>=' and '<=', and able to perform numeric comparison.
	1.if命令新增>=和<=比较符。
	  新的if命令支持三种比较>=,==,<=
	  如果两边都是数字,则自动转换成数值型来比较,否则按字符串的ASCII大小比较.

2011-12-11
	1.可以使用map --status=n来获取已经映射磁盘的状态。  use map --status=n to get status of hooked drive n.
	返回以下两个变量信息(return)
	%?%=Start_Sector
	%@retval%=Sector_Count
	如果该磁盘不存在返回0.

2011-12-08
	1.支持菜单自动编号(使用动态菜单时比较有用)。		Support menu AutoNumber.this is useful when used iftitle.
	usage:
	  write 0x8274 0x2001
	  or
	  write 0x8274 0x2D01
	0x20(space) or 0x2d ('-') is the delimiter char in ascii code.
	更多的用法介绍:
	http://bbs.wuyou.com/viewthread.php?tid=180142&page=193#pid2351695

2011-12-06
	1.bug修正。
	2.使用调试模式启动时可以显示条件菜单执行的命令。

2011-12-05
	1.添加条件菜单功能		added iftitle.
	语法: iftitle [<command>] Actual Title displayed\nOptional help line
	只要条件不成立该菜单项目无效。
	eg.如果(hd0,0)上有bootmgr文件才会显示第一个菜单,如果有NTLDR文件才会显示第二个菜单
	
	iftitle [if exist (hd0,0)/bootmgr] Boot to NT6.X from (hd0,0)
	chainloader (hd0,0)/bootmgr
	
	iftitle [if exist (hd0,0)/ntldr] Boot to NT5.X from (hd0,0)
	chainloader (hd0,0)/ntldr
	
2011-12-01
	1.BUG修正。
	  BUG fixed.
	2.添加使用INT18启动功能。
	  Supported boot via INT 18.
	  用法(usage):
	     boot -1
	     or 
	     boot --int18
	3.一些代码精简

2011-11-29
	1.BUG修正。
	2.新的color命令语法。
	  color color_state=color [..]
	其中color_state字符串可以如下。
	 normal		未选中菜单
	 highlight	选中菜单
	 helptext	菜单帮助信息
	 heading	菜单头(GRUB4DOS信息)
	 standard	默认色(控制台)
	 border		菜单边框VBE模式下有效果
	3.新的setcolor/setcolorstate函数
	
2011-11-27
	1.修正fontfile命令在splashimage后面时导至背景图颜色错误的问题.
	2.VGA模式(0x12/0x6a)没有使用splashimage命令时可以指定字体颜色和console模式一样.

2011-11-22
	1.新的COLOR命令允许设置控制台默认字体颜色和背景色(只限于文本模式或VBE模式)
	  方法: 直接使用只带一个参数的color命令即可.
	注: 在命令行或批处理脚本中执行有效.

2011-11-19
	1.cursor_state bit 0=1 show cursor,bit 1=1 show splashimage.
	  use setcursor(n) to change if need,can change from commandline e.g.
	  call Fn.70 0 disable cursor and splashimage.
	2.清理部份无用代码.

2011-11-18
	1.支持BMP背景图片,只限于VBE模式         supported splashimage with BMP format(VBE mode only).
	2.使用BMP图片时,如果非处于VBE模式,则尝试自动匹配图片分辨率.

2011-11-03
	1.修正一个map的bug.                     bug fixed in map_func.
	  相关贴子:
	  http://bbs.wuyou.com/viewthread.php?tid=201887
	  http://bbs.wuyou.com/viewthread.php?tid=201647
	2.忽略ISO9660文件系统上文件名的大小写.   Make name comparisoncase-insensitive on iso9660.
	  可以使用以下命令禁用该功能.            You can use below command to disable this feature.
	  write 0x4CA24 0
	3.cat命令添加--locatei参数,             added --locatei option for cat.
	  查找时忽略大小写                      ignore case locate.
	eg.
	  cat --locatei=Test (md)0x300+1

2011-10-07
	1.新增?_BOOT变量,访问启动GRUB4DOS的Boot_drive
	  add new Variable ?_BOOT to access grub4dos Boot_drive.
	2.为了节省代码GRUB4DOS内部不再处理外部命令WENV的兼容性(WENV tuxw版)
	解决办法如下:
	  如果需要使用该版本WENV则自己在菜单或批处理中添加以下命令
	  write --offset=0x1f8 (md)0x228+1 ?_WENV\0
	3.uuid 命令对于uuid字符的判断不区分大小写。

2011-10-02
	1.取消对fb启动盘的修正,恢复原样.
	2.其它批处理相关代码微调.

2011-09-28
	1.修正访问磁盘分区的BUG(disk_io.c),感谢Yonsm的报告和测试.
	  fixed a bug in disk_io.c
	  http://bbs.wuyou.com/viewthread.php?tid=200520&extra=page%3D1

2011-09-13
	1.修正insmod的一个bug(不能直接insmod默认路径下的文件)
	  fixed a bug in insmod_func.

2011-09-05
	1.insmod支持指定名字,比如insmod fat.gz fat.
	  Support specified name when insmod a module.

2011-09-02
	1.fixed a bug in setloca/endlocal.
2011-08-25
	1.修正cat命令的一个BUG,使用cat --locate-align参数时会出错.
	 fixed a bug in cat_func.
2011-08-23
	1.添加echo/cat命令的帮助信息.(issue: 38,40)
	  add help text for command echo/cat.
	2.修复help --all显示的问题(issue: 39)
	  fixed "help --all" issue.
2011-08-09
	1.批处理call/gotoBUG修复.
	2.新的call可以直接call一个命令.

2011-08-08
	1.一些代码微调.
	2.修正Ctrl+C强制中止批处理脚本,有时会失败的问题(call和&&,||连用时可能会失败)
	3.使用管道符"|"时超过0xC00长度的之符将被丢弃.

2011-08-01
	1.外部命令调用修改,优先使用当前目录下的命令(如果存在的话).
	2.修复在批处理中使用exit命令退出批处理,导致批处理返回值为0的问题.

2011-07-30
	1.批处理执行时允许使用Ctrl+C强制中断运行.

2011-07-19
	1.内置变量?_WENV=?_UUID=?
	  注:1.将来会取消?_UUID,为了保持兼容性,暂时先放一段时间.
	       请使用%?%或%?_WENV%代替%?_UUID%来获取UUID.
	     2.%?%变量可以获取命令返回的字符串信息.
	       目前可用的信息有两个.uuid dev(返回指定设备的UUID字符串),cat --locate= (返回最后一个找到的位置)
	2.@random算法修改.


2011-07-13
	1.在执行cmain之前初始化变量内存空间。

2011-07-12
	1.执行clear命令时同时设置count_lines为0。
	2.内置变量增加@retval,其实就是之前的0x4cb00
	3.增加setlocal @和endlocal @用法。
	  setlocal @可以在批处理中使用,把当前的环境保存起来
	  除非使用endlocal @否则setlocal @之后的设置会一直保留(批处理退出也不影响).
	注:1.在批处理中出现setlocal @则在批处理中setlocal @之前的setlocal命令会全部失效。
	    所以setlocal @有必要的使用的话一般要放在批处理最前面。
	    2.setlocal @后面如果还有出现setlocal,则setlocal之后的设置不会保留.

2011-07-11
	1.添加SETLOCAL和ENDLOCAL命令,和WINDOWS下的批处理用法一样。

2011-07-05
	1.尝试解决%~d0,%~f0路径提取的问题,现在%~f0应该可以提取到正确的路径。
	2.解决if命令输出转向失败的问题。
	3.其它代码调整。

2011-05-27
	1.优化PXE_DIR代码。
	2.其它微调。

2011-05-25@176
	1.调整cat命令的查找字符串代码。
	2.修改批处理的调试模式开启方法(改为debug 3才会进入调试模式)
	3.消除一些编译时的警告信息。

2011-05-23@174
	1.修正一个TFTP相对路径的问题,感谢2011exuejiao@wuyou.
	2.在批处理中可以使用debug 3临时开启debug模式。

2011-04-30@159
	1.取消前面版本对批处理参数的调整.恢复到04-16版.
	2.修正一个BUG.(函数print_root_device).
	3.批处理参数新增%~f 文件全路径,%~z文件大小.
	4.现在批处理脚本可以使用使用errorcheck命令控制是否检测错误(默认错误就退出).

2011-04-29@157
	1.find 命令不再查找(hdx)设备.
	2.删除@root变量的前导空格.
	3.ls命令新增dev参数,用于显示设备列表.
	4.批处理代码调整,对于(bd)设备%~d0会使用实际的设备.

2011-04-25@156
	1.新增两个内置变量@root,@path.
	  @root 当前的root.
	  @path 当前默认外部命令查找路径.
	2.修正一个可能导致程序出错的问题.(使用到了临时变量的内存).
	3.批处理代码功能增强.

2011-04-16@153
	1.md5crypt 支持参数。后面直接跟一个字符串会直接计算这个字符串的md5。
	2.菜单支持以变量开头的命令。

2011-03-30@151
	1.LZMA格式解压时暂时禁止显示进度(因为显示进度时解压大文件会失败)。
	2.添加内置变量?_UUID(使用uuid命令可以把获取到的磁盘uuid保存到变量中).

2011-03-29@150
	1.insmod *.mod添加了检测模块文件头是否为GRUBEXEC签名.
	注:目前还是兼容旧版本的MOD模块,一段时间后会取消,请使用新的MAKEMOD重新制作模块。

	2.对批处理路径和文件名的空格进行自动处理。空格前面自动加转义符"\"
	注:使用p,n,x参数时有效。即%~1时不会处理,但%~p1时会处理。
	
2011-03-26@150
	1.使用kernel (rd)+1启动时,默认的启动设备改为当前root.

2011-03-25@149
	1.修改cat命令替换时显示的信息
	cat --locate=S -replace=R 除非debug on否则不显示信息.
	2.批处理参数新增%*代表所有参数%1 %2 %3 ....

2011-03-24
	1.set /p功能增强(可能会和之前的版本不兼容),新增参数set /p:N
	主要变动:
		1).如果未输入不会清除原来的变量.(之前的版本会清除).
		2).新增支持默认时间没有输入自动退出.
		   set /p:N variable=prompt
		如果在N秒之内没有任何输入,则返回,并且不改变variable的值.
		   
2011-03-23
	1.为了方便使用,修改shift命令为内部命令.并且shift支持参数
	shift n 或 shift /n
	具体用法,可以参考CMD/linux下的shift命令帮助.

2011-02-19
	1.修复kernel加载grub2 loader的问题.
	  fixed a bug when load multiboot-image(boot.c).
	2.现在可以运行16位程序,和wee的机制一样(直接移植了wee里面的代码)
	
2011-02-15
	1.添加realmode_run函数
	2.修改GPT分区检测代码,更加严格的检测。

2011-02-12
	1.增加GPT分区检测,检测不通过就使用MBR分区。
	2.一些代码微调。

2011-02-10
	1.清理UTF8转换UNICODE的代码,不再需要(请同时更新UNIFONT).
	2.修复变量字符串截取BUG.Fixed Bug in envi_cmd func.(thanks sratlf@wuyou report).
	http://bbs.wuyou.com/viewthread.php?tid=180142&page=52#pid2154655

	注意:从2011-02-10开始,必须使用最新版的UNIFONT才可以正常显示UNICODE字符.

	Note: You must also update unifont to the latest version.new unifont can show unicode char anywhere.
	Download the latest version of unifont:
	    http://code.google.com/p/grubutils/downloads/list

2011-01-28
	1.支持读取GPT分区表。
	  为了区别MBR分区表和方便编程,所有的GPT分区类型全部使用0xEE表示。

	2.修正一个bug,现在可以访问大于1T的硬盘.但还不能访问超过2T的内容。

2011-01-26
	1.修复run_line的一个BUG,会导致返回值为假。
	2.添加IF/SET命令的帮助信息。
	3.IF命令增加以下语法,判读一个变量或文件是否存在。
	  if exist variable|filename command.
	4.控制pause的输出,debug小于0时不显示倒计时。debug小于1时不显示按键码.

2011-01-22
	1.set /A 参数使用16进制数保存变量,set /a 十进制数保存变量。
	2.修复goto的一个bug.
	3.修复重定向操作符的bug.

2011-01-19
	1.set命令不再接受回车换行符。
	2.修复获取批处理参数bug.
	3.修复fb文件系统bug(可能会导致访问文件出错)。

2011-01-14
	1.set命令增强.添加了/l,/u参数
	set /l a=Abcd
	把Abcd转为小写./u是转换大写。

2011-01-13
	1.修复utf8菜单编码自动检测的BUG。

2011-01-10
	1.修复SET命令的bug,添加/p参数
	2.修复启动linux时内存冲突的bug.

2011-01-09
	1.菜单支持变量。
	2.支持变量截取(和CMD的方法一样),不支持替换。

2011-01-08
	1.重写grub_sprintf函数,支持简易的宽度和精度控制符(m.n或*.*)。
	
2011-01-07
	1.SET命令添加一个参数/a可以把=后面的计算结果赋值给变量.
	2.新的safe_parse_maxint函数支持一元运算符。"~!-"

2011-01-06
	1.修改CAT命令的显示。现在的cat /filen.ext碰到字符结束符'\0'就停止。
	2.批处理内部添加一个命令shift(只能在批处理中使用).
	3.skip_to函数现在会可以跳过(‘\r’和‘\n’)。
	4.set *将清除所有变量。

2011-01-05
	1.修正run_line的一个逻辑错误。
	2.外部命令command默认的目录改为(bd)/BOOT/GRUB/
2011-01-03
	1.pager命令即实生效。
	2.添加简易的if判断命令类似的MSDOS.目前支持的判断如下:
	  added a new command if.
	if [/I] [NOT] STRING1==STRING2 [COMMAND]
	注:判断符号==前后不允许有空格或制表符否则比较会失败。
	2.添加SET命令可以设置、修改、删除变量。
	  added a new command set to modify the variable.
	3.从现在开始支持变量。用法和MS-DOS一样。
	  From now supports variable.
	注:使用了和WENV同样的方案。所以这个功能可以看成是简化版的WENV

2011-01-02
	1.pause命令添加一个参数--test-key,可以显示按键扫描码。
	  added --test-key option for pause to display the key scan code.
	2.grub_sprintf函数支持字符串精度控制符。
	  

2011-01-01
	1.修复find命令的bug。当然使用条件查询时可能会出错。
	2.批处理参数修改,为了方便使用,%9改成剩余的所有参数。
	比如参数: 1 2 3 4 5 6 7 8 9 0 a b c
	那%9就是9 0 a b c.

2010-12-31
	1.pause命令增强,增加了显示按键码的功能。
	2.hiddenmenu命令增强。增加一个--chkpass参数
	具体用法请参考: README_GRUB4DOS.TXT对应的更新

2010-12-28
	1.一些BUG修复.
	2.PAUSE命令增加倒计时显示.
	3.fsys_fb.sys代码微调.

2010-12-25
	1.现在delmod也是一个内部命令.
	2.重写insmod/delmod相关的代码.把加载的模块固定在内存18MB开始的位置.

2010-12-21
	1.从command_func中分离出insmod作为一个内部命令存在.
	现在允许insmod加载一个命令合集.(扩展名.mod)
	例子:
	insmod grub4dos.mod
	这个命令合集使用MAKEMOD程序生成.

2010-12-18
	1.代码调整.
	cat添加一个参数--number=N 在查找替换的时候指定查找次数.
2010-12-17
	1.fixed a bug in checkrange_func.

2010-12-16
	1.修正使用批处理运行时可能会出现ERROR 25的错误.
	2.重写批处理运行函数.

2010-12-15
	1.还原2010-12-10对0000:82A4的改变.
	2.为了方便使用当使用fbinst启动时有如下调整
          boot_drive (bd) 为FB_DRIVE(ud)
	  默认root(saved_drive) 为可见分区.
	3.为了减小压缩包的大小,改成用7z压缩发布.

2010-12-14
	1.完善对ud(fbinst创建的分区)支持.现在不需要从fbinst启动也可以随意访问fbinst创建的分区.
	2.允许在批处理中执行的外部命令调用goto/call标签.

2010-12-12
	1.批处理添加exit命令.直接退出批处理.如果后面有数值则设置为errnum.
	如exit 1,退出,并返回一个错误的值.
	2.一些代码优化调整.
	3.修改pause命令,现在的pause直接返回按键的ascii码值.

2010-12-11
	1.完善批处理脚本参数的支持(同CMD下的批处理用法一样).
	2.可以在菜单中使用goto命令(即...
Zgłoś jeśli naruszono regulamin