Mail Archives: djgpp-workers/1999/04/19/05:32:43
On 18 Apr 99, at 17:19, Eli Zaretskii wrote:
> I don't think I will check in this new version for v2.03, since it is
> more than just a bugfix. I *will* correct the bug in the current version
> that will blow the stack for file names longer than 80 characters.
There were one more significant thing:
Current version of of dtou and utod can replace file with corrupt one
if there is some problem while writting output file (eg. disk is full).
I tried to fix this problem and I think it should be fixed.
> Some minor comments to your code follow:
>
> strcpy (tfname, fname);
> for (bn=w=tfname; *w; w++)
> if (*w=='/' || *w=='\\')
> bn = w+1;
>
> I don't think this is good for Unix (a backslash is a normal character
> there). And for DOS/Windows, this doesn't support names like "d:foo".
My fault. That also should be handled.
> Why isn't it better to use `dirname'? If you are afraid that some Unices
> won't have it (Linux certainly does), then you could put a Unix-only
> version inside dtou.c, properly conditioned with ifdef's.
I looked in portability section of info file and saw 'not ANSI, not POSIX' for
dirname(). So I thought it's better to void it.
>
> if (l>=0 && l2>=0 && err==0)
> {
> remove(fname);
> rename(tfname, fname);
> utime(fname, &tim1);
> }
>
> I think just `rename' is enough, even in DJGPP.
I simply left that as it was and previous version had also remove().
Andris
- Raw text -