[fpc-pascal] FPC docs about FindFirst

Marco van de Voort fpc at pascalprogramming.org
Tue Sep 24 20:51:48 CEST 2019


Op 2019-09-24 om 18:57 schreef Ralf Quint:
> On 9/24/2019 12:24 AM, Marco van de Voort wrote:
>> Op 2019-09-24 om 03:03 schreef Ralf Quint:
>>> systutils, so having documentation that includes the differences 
>>> between the versions would be helpful.
>>>
>>> Turbo Pascal (for DOS) didn't have a FindClose function, as 
>>> "officially", this would not be necessary on DOS. On all other OS, 
>>> including Windows, for many, many years (I first stumbled about 
>>> missing "FindClose" call in OS/2 some time in the early '90s) and 
>>> got used to *alway**s* terminate a file search with it, even if it 
>>> is in the case of DOS just a dummy routine that just returns without 
>>> doing nothing. Saves a lot of headaches trying to find the source of 
>>> apparent memory leaks in larger applications that do a lot of of 
>>> file searches...
>>>
>>>
>> Note that afaik Long File Name supporting versions of the Dos unit 
>> with Turbo Pascal did have findclose, as afaik the LFN apis required 
>> it too.
>> _______________________________________________ 
>
> I don't recall that there was a "DOS" unit in Turbo Pascal that was 
> LFN aware, at least not as part of an official Borland distribution up 
> to Borland Pascal Professional 7.01, the last version that I bought 
> way back then. I just checked the Reference Manual... ;-)

There are several, e.g. in Swag. IOW they are 3rd party 
reimplementations of the dos unit based on int21 ah=7x functions, often 
also supporting things like copy/pasting to clipboard. I skipped win3.x 
TP(W)/Delphi versions, so I don't know their exact status either.

I assume anything win32s or win32 will use findclose.

> I have personally never cared about LFN in pure DOS, don't know if it 
> was maybe part of Borland Pascal for Windows or in Delphi 1.02, but I 
> think FindClose was part of Delphi 3, which I didn't buy until I moved 
> to the US and then used on Windows 95 and NT 4. Checking RBIL states 
> that FindClose is an INT21h function required for Long Filenames 
> (AX=71A1h) but "this function is only available when IFSMgr is 
> running, not under bare MS-DOS 7"

Such units checked this, as did FPC soon after, supporting both cases 
with one RTL. There are also lfn giving TSRs buy apparantly YMMV.

I came back to BP in that period very shortly, moving on to FPC swiftly 
after.




More information about the fpc-pascal mailing list