View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0018066FPCRTLpublic2010-11-27 08:352012-06-03 00:42
ReporterLadislav Lacina 
Assigned ToTomas Hajny 
PlatformGO32v2OSGO32v2OS Version
Product VersionProduct Build 
Target VersionFixed in Version2.7.1 
Summary0018066: case sensitivity for long file name functions?
DescriptionIn SYSTEM.PP in GO32V2 subdirectory is strange piece of code:

  if LFNSupport then
  AllFilesMask := '*';
  AllFilesMask := '*.*';

Are you sure that FileNameCaseSensitive should be TRUE in LFN mode?
Sounds strange for me...
TagsNo tags attached.
Fixed in Revision20897
Attached Fileszip file icon patch.ZIP [^] (135,147 bytes) 2010-12-01 22:33

- Relationships
related to 0021781closedMichael Van Canneyt Documentation for newly added FileNameCasePreserving 

-  Notes
Tomas Hajny (manager)
2010-11-27 13:22

You're right. The trouble is that FPC RTL currently misuses a single variable (FileNameCaseSensitive) for two different properties - case sensitivity and case preservation. If this variable is set to false, some RTL functions convert all file paths to uppercase to ensure higher compatibility with TP/BP (e.g. FExpand is explicitly defined as converting all paths to uppercase in TP/BP). On the other hand, this behaviour is obviously not wanted when dealing with case preserving systems. We should actually add another variable (FileNameCasePreserving) to all targets, check all code using FileNameCaseSensitive and decide which of the two should be used on individual basis and adapt accordingly. As far as I know, WinXX, LFN enabled DOS, MacOS and OS/2 using LFN enabled partitions are all case preserving but not case sensitive (with some exceptions like case sensitive file systems, e.g. ext2, attached to OS2/ ;-) ).

This change is not difficult at all, it just requires some time. Maybe you could supply a patch for this?
Ladislav Lacina (reporter)
2010-12-01 22:37

OK, I added definitions of FileNameCasePreserve for all targets.
As a base I used sources of FPC 2.4.2
However I had nothing to change elsewhere than in SYSTEM.PP, SYSTEM.PAS and OLDLINUX.PP and SYSUNIXH.INC files.

Everywhere else I left code untouched because I haven't found place where should be FileNameCasePreserve used.

Patch is attached above.
Marco van de Voort (manager)
2012-01-22 15:37

From what version is that RTL? Then I'll generate a diff.
Tomas Hajny (manager)
2012-01-22 17:39

The comment above mentioned 2.4.2 sources...

Sorry that I didn't close it for all that long time but it is not just that you could apply it as it is without further effort. Current trunk contains more targets (nativent, wii), i.e. the change needs to be extended beyond the original patch. The proper value of the new constant probably needs to be checked with platform maintainers before applying the patch (e.g. I certainly cannot judge whether gba is case preserving or not). Some tests need to be checked and possibly adapted (at least tests/test/units/dos/tdos2.pp). And obviously the docs need to be adapted too (extend the description of FileNameCaseSensitive, add FileNameCasePreserving and references to that one similarly to existing references to FileNameCaseSensitive plus I found a reference to FileNameCaseSensitive also in user.tex).
Tomas Hajny (manager)
2012-04-15 23:30

Fixed, thanks. Sorry that it took so long - some minor changes to the provided patch were necessary.

- Issue History
Date Modified Username Field Change
2010-11-27 08:35 Ladislav Lacina New Issue
2010-11-27 13:22 Tomas Hajny Note Added: 0043600
2010-12-01 22:33 Ladislav Lacina File Added: patch.ZIP
2010-12-01 22:37 Ladislav Lacina Note Added: 0043864
2010-12-02 09:05 Tomas Hajny Status new => assigned
2010-12-02 09:05 Tomas Hajny Assigned To => Tomas Hajny
2012-01-22 15:37 Marco van de Voort Note Added: 0055949
2012-01-22 15:37 Marco van de Voort Status assigned => feedback
2012-01-22 17:39 Tomas Hajny Note Added: 0055952
2012-04-15 23:30 Tomas Hajny FPCOldBugId => 0
2012-04-15 23:30 Tomas Hajny Fixed in Revision => 20897
2012-04-15 23:30 Tomas Hajny Note Added: 0058635
2012-04-15 23:30 Tomas Hajny Status feedback => resolved
2012-04-15 23:30 Tomas Hajny Resolution open => fixed
2012-04-15 23:30 Tomas Hajny Product Version 2.4.2 =>
2012-04-15 23:30 Tomas Hajny Fixed in Version => 2.7.1
2012-04-16 01:20 Tomas Hajny Relationship added related to 0021781
2012-06-03 00:42 Tomas Hajny Status resolved => closed

MantisBT 1.2.12[^]
Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker