· Sep 15

Routine names and UDL file names - case issues


I am dealing with a very old code base (some routines date back to 1985 and were running on a M system 😉). It is rather huge and currently contains around 5000 compilable *.int routines.

My goal is to export all routine code as *.int UDL files and setup a git repository containing all routines.

The issue is, approximatively 200 of those routines have storage names that differ only in case. I am using Windows and when exporting those routines using vscode, files gets overwritten depending on routine export order, as Windows NTFS file system names are not case-sensitive.

For example, there is routine with a storage name "" and another one with "". Some routines have up to four such case-insensitive ambiguous names.

In addition, the actual routine name (in the header of the code) is not always in sync with storage name. I believe most of those issues relate to the habit developers had of renaming routines with similar names for backup purposes.

I ended up writing a class method to export those classes, adding a suffix to the exported file name to provide a unique case-insensitive name when needed. It is still a bit messy, but I would be happy to share if there is interest in it, depending on the following question answers.

Is there a way to configure the vscode extention to export routines as individual unambiguous UDL files with non-ambiguous names to case-insensitive file systems ?

Product version: IRIS 2021.1
Discussion (5)2
Log in or sign up to continue

After enabling case-sensitivity in Windows, it is indeed possible to keep the original storage names.

Unfortunately,  enabling the flag has no impact on the behaviour of Windows versions of git or vscode, they continue to use case-insensitive comparisons for file names. For example, it is impossible to stage / commit changes to the git repository, as file names differing only case are considered as a single file.