normalize source-file pathes
If you have cascaded relative includes the current mechanism just chains the pathes to find the right include file. This is problematic especially on windows, where the pathes have an overall length limit of 256 characters.
Following example demonstrates the problem:
├── includes
│ └── include1.ly
├── more_includes
│ └── include2.ly
└── songs
└── song.ly
In song.ly you do:
include "../includes/include1.ly"
and in include1.ly you have:
include "../more_includes/include2.ly"
so the resulting path for the inclusion of include2.ly would be:
../includes/../more_includes/include2.ly
You can imagine, that this quickly leads to long pathes beyond the windows path limit of 256 characters.
The patch given in this Merge Request just tries to normalize the file pathes before using them.
So in our example ../includes/../more_includes/include2.ly would just get normalized to:
../more_includes/include2.ly
The biggest Problem for me is, how to build a Windows version of Lilypond, so that my friend who uses Windows could test the patch? I couldn't find the right guide for this. On Linux the patch builds and works as expected.