Hi! 30-Дек-2004 15:59 [EMAIL PROTECTED] (Luchezar Georgiev) wrote to [EMAIL PROTECTED]:
> +++ inthndlr.c 30 Dec 2004 15:59:38 -0000 1.87.2.12 > @@ -959,7 +958,6 @@ > DosMemLargest(&lr.BX); > if (DosMemCheck() != SUCCESS) > panic("MCB chain corrupted"); > - goto error_exit; > } > lr.AX++; /* DosMemAlloc() returns seg of MCB rather than data */ > break; Bug: in case of not enough memory, INT21/48 should return error code 8 and size of largest available block in BX; now in case of error there will be anyway returned "success" and garbage in AX. > @@ -970,7 +968,6 @@ > { > if (DosMemCheck() != SUCCESS) > panic("MCB chain corrupted"); > - goto error_exit; > } > break; Bug: in case of wrong segment, INT 21/49 should return error code 9; now in case of error anyway will be returned "success". > @@ -990,7 +987,6 @@ > #endif > if (DosMemCheck() != SUCCESS) > panic("after 4a: MCB chain corrupted"); > - goto error_exit; > } > lr.AX = lr.ES; /* Undocumented MS-DOS behaviour expected by BRUN45! */ > break; Bug: same, as for INT 21/48. (BTW, although RBIL says about error code 7 ("MCB destroyed"), which may be returned, FD in this case just hangs (through panic()). I think, this is good behavior, but don't know how this is compatible to MS-DOS). > @@ -1204,9 +1199,7 @@ > case 0x09: > rc = remote_printredir(lr.DX, Int21AX); > CLEAR_CARRY_FLAG(); > - if (rc != SUCCESS) > - goto error_exit; > - break; > + goto short_check; I don't sure, if this replacement is valid - unfortunately, remote_*() calls are too indirect and I can't check, if rc>0 values are returned at all and treated (or not) as "error". ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Freedos-kernel mailing list Freedos-kernel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-kernel