Lugaru's Epsilon
Programmer's
Editor

Context:
Epsilon User's Manual and Reference
   Commands by Topic
      Buffers and Files
         Buffers
         Files
            . . .
            DOS/OEM Character Set Support
            File Name Prompts
            File Name Case
         File Variables
            Directory-wide File Variables
            Vi/Vim File Variables
         . . .

Previous   Up    Next
File Name Prompts  Commands by Topic   File Variables


Epsilon User's Manual and Reference > Commands by Topic > Buffers and Files > Files >

File Name Case

When retrieving file names from some file systems, Epsilon automatically translates the file names to lower case. Epsilon uses various different rules for determining when to convert retrieved file names to lower case, and when two file names that differ only by case refer to the same file.

Epsilon distinguishes between three types of file systems:

On a case-sensitive file system, MyFile, MYFILE, and myfile refer to three different files. Unix file systems are normally case-sensitive.

On a case-preserving (but not case-sensitive) file system, MyFile, MYFILE, and myfile all refer to the same file. But if you create a file as MyFile, the file system will display that file as MyFile without altering its case. VFAT, NTFS, and HFS file systems used in Windows and Mac OS are case-preserving.

On a non-case-preserving file system, MyFile, MYFILE, and myfile all refer to the same file. Moreover, the operating system converts all file names to upper case. So no matter how you create the file, the operating system always shows it as MYFILE. DOS's FAT file system is non-case-preserving. When Epsilon displays a file name from such a file system, it changes the file name to all lower case.

Epsilon for Windows asks the operating system for information on each drive, the first time the drive is accessed. Epsilon for Unix assumes all file systems are case-sensitive (for Mac OS, case-preserving), and the rest of this section does not apply.

You can tell Epsilon to use particular rules for each drive on your system by defining an environment variable. The MIXEDCASEDRIVES environment variable should contain a list of drive letters or ranges. If the variable exists and a lower case letter like k appears in it, Epsilon assumes drive K: has a Unix-style case-sensitive file system. If the variable exists and an upper case letter like J appears in it, Epsilon assumes drive J: is not case-preserving or case-sensitive, like traditional FAT drives. If the variable exists but a drive letter does not appear in it, Epsilon assumes the drive has a case-preserving but not case-sensitive file system like NTFS, HPFS, or VFAT drives.

If, for example, drives h:, i:, j:, and p: access Unix filesystems over a network, drive q: accesses a server that uses a FAT filesystem, and other drives use a VFAT filesystem (local drives under Windows, for example), you could set MIXEDCASEDRIVES to h-jpQ. When Epsilon finds a MIXEDCASEDRIVES variable, it assumes the variable contains a complete list of such drives, and doesn't examine filesystems as described. If an EPSMIXEDCASEDRIVES configuration variable exists, that overrides any MIXEDCASEDRIVES environment variable that may be found. (Note that MIXEDCASEDRIVES appears in the environment under all operating systems, while EPSMIXEDCASEDRIVES is a configuration variable must be put in the registry under Windows. See Configuration Variables for details.)

You can set the variable preserve-filename-case nonzero to tell Epsilon to use the case of filenames exactly as retrieved from the operating system. By default, Epsilon for Windows changes all-uppercase file names to lower case, except on case-sensitive file systems. The variable also controls case conversion rules when Epsilon picks a buffer name for a file, and related settings.



Previous   Up    Next
File Name Prompts  Commands by Topic   File Variables


Lugaru Copyright (C) 1984, 2012 Lugaru Software Ltd. All Rights Reserved.