Mail Archives: djgpp-workers/2002/04/29/06:45:50
> > What about characters like <, >, and | -- what happens then?
I get the same result from _open(">*.dox", ...) as I did with
_open("*dox",...).
> They also cause the error to be 123 decimal; so maybe this is a new
> special early exit code saying "invalid file name?" Its so much fun
> when they give you new features.
Keeps the mind trying to find the ball to keep on top of.
Here are my results from the _open(">*.dox",....) test:
LFN= NO:
test.c 13 file >*.dox, desc = 0, errno = 0
open.c 116 filename >*.dox, real_name = >*.dox, errno = 0, oflag= 0
_open.c 31 filename >*.dox, errno = 0, oflag= 0
_open.c 82 filename >*.dox, errno = 0, oflag= 0
_open.c 114 filename >*.dox, errno = 0, oflag= 0
r.x.ax = 3D00
r.x.bx = 54
r.h.ah = 3D
r.h.al = 0
r.x.dx = 0
r.x.cx = 0
_open.c 124 filename >*.dox, errno = 0, oflag= 0
result = r.x.ax = 3
_open.c 127 filename >*.dox, errno = 22, oflag= 0
open.c 119 filename >*.dox, real_name = >*.dox, errno = 22, oflag= 0
test.c 17 file >*.dox, desc = -1, errno = 22
Comments: The int21 3D00 function returned 3 in AX which was converted to
errno 22. Works correctly
LFN= YES:
DJGPP_204 D:\dj204\work\open>test
test.c 13 file >*.dox, desc = 0, errno = 0
open.c 116 filename >*.dox, real_name = >*.dox, errno = 0, oflag= 0
_open.c 31 filename >*.dox, errno = 0, oflag= 0
_open.c 38 filename >*.dox, errno = 0, oflag= 0
_open.c 54 filename >*.dox, errno = 0, oflag= 0
_open.c 78 filename >*.dox, errno = 0, oflag= 0
_open.c 80 filename >*.dox, errno = 0, oflag= 0
_open.c 82 filename >*.dox, errno = 0, oflag= 0
_open.c 84 filename >*.dox, errno = 0, oflag= 0
_open.c 114 filename >*.dox, errno = 0, oflag= 0
r.x.ax = 716C
r.x.bx = 0
r.h.ah = 71
r.h.al = 6C
r.x.dx = 1
r.x.cx = 0
_open.c 124 filename >*.dox, errno = 0, oflag= 0
result = r.x.ax = EA
_open.c 127 filename >*.dox, errno = 14, oflag= 0
open.c 119 filename >*.dox, real_name = >*.dox, errno = 14, oflag= 0
test.c 17 file >*.dox, desc = -1, errno = 14
Comments: Win XP int21 716C function returned EA in AX which was converted
to errno 14. The problem as I can see is that EA is a Netware results and I
haven't touched Novel Netware since 1992. I can't see any reason for Windows
XP returning EA afte the int21 call.... Any ideas?
Charles, is this different on Win 2K?
> > > An easy fix would be to change the doserr_to_errno translation table.
100% agree that this appears to be the place to fix the problem, but my only
issue is will it work 95+% of the time? We may need to do some more
investigation into this over the next 2-3 days to figure it out IMHO.
> >
> > That'd be probably the easiest fix. Please add a comment there
> > explaining what is this for.
>
> I'd like to see Andrew's comments first to see if we need multiple
> changes in the table.
I would like to check this out a bit more before proposing a final solution
as Charles with W2K has a different result to what I got on XP. This may be
our first documented diffrence between 2K and XP, otherwise what caused the
difference?
Andrew
- Raw text -