| delorie.com/archives/browse.cgi | search |
| Date: | Tue, 14 Aug 2001 18:26:50 +0300 |
| From: | "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il> |
| Sender: | halo1 AT zahav DOT net DOT il |
| To: | acottrel AT ihug DOT com DOT au |
| Message-Id: | <6480-Tue14Aug2001182649+0300-eliz@is.elta.co.il> |
| X-Mailer: | Emacs 20.6 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.9 |
| CC: | djgpp-workers AT delorie DOT com |
| In-reply-to: | <013d01c124bc$b4b1fe60$0a02a8c0@acceleron> (acottrel@ihug.com.au) |
| Subject: | Re: Fw: Fstat.c patch |
| References: | <00fe01c12311$92957890$0a02a8c0 AT acceleron> <4331-Mon13Aug2001125532+0300-eliz AT is DOT elta DOT co DOT il> <019701c123f9$6febae70$0a02a8c0 AT acceleron> <557-Mon13Aug2001165656+0300-eliz AT is DOT elta DOT co DOT il> <028c01c12405$d1b326e0$0a02a8c0 AT acceleron> <013d01c124bc$b4b1fe60$0a02a8c0 AT acceleron> |
| Reply-To: | djgpp-workers AT delorie DOT com |
| Errors-To: | nobody AT delorie DOT com |
| X-Mailing-List: | djgpp-workers AT delorie DOT com |
| X-Unsubscribes-To: | listserv AT delorie DOT com |
> From: "Andrew Cottrell" <acottrel AT ihug DOT com DOT au>
> Date: Tue, 14 Aug 2001 22:29:03 +1000
>
> If I recompile CP from fileutils using only the relevant files and step
> through the code then the code does NOT set up the dos_major variable, it's
> set to zero. I have traced this to the djstart.c program which sets the
> _djstat_flags to 0x34 in the static init_stat_bits() function. The
> definition for _STAT_NEEDS_SFT is 0x23 and as such if I and these together I
> do NOT get 0 and as such the GNUC compiler does not call the get_sft_entry()
> which in turn initalises the dos_version function.
Right, I forgot about that djstart gork.
> > /* Get pointer to an SFT entry which holds data for our handle. */
> > if ( (_djstat_flags & _STAT_NEEDS_SFT) == 0 &&
> > (sft_idx = get_sft_entry(fhandle)) == -1)
> > {
> > errno = EBADF;
> > return -1;
> > }
>
> Now for the queries to help me try to find a correct solution:
> 1) Is it expected that the get_sft_entry() is not called in the scenario
> above?
Yes, it is expected: if _STAT_NEEDS_SFT is set, it means `fstat'
doesn't need any of the info it gets from the SFT.
> 2) Is it expected that the dos_major is setup even if the get_sft_entry() is
> not called? (I think the answer is yes)
Yes, expected.
> 3) Any suggestions as to where to head with this issue?
It's a bug: the if clause that checks whether to call function 71A6
should have used _osmajor, which is always set. There's no reason to
condition it on the true DOS version.
Thanks for hunting this down.
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |