When I made my initial comment I hadn't reviewed all the code to see the uses of the tags variable. I just thought that doing an explicit cast on a couple of lines could cause problems if a FreeType method was invoked passing tags as a parameter, since, depending on the version, errors could be generated. I prefer the #if/#endif block solution as it leaves the code cleaner even though I hate this type of macro solutions. Thank you.
I have not tested but I would expect a compiler complain: error: invalid conversion from ‘unsigned char*’ to ‘char*’ [-fpermissive] or error: invalid conversion from ‘char*’ to ‘unsigned char*’ [-fpermissive] depending on agg/FreeType parameters combination.
If agg is linked with a previous version of FreeType there is now a problem. r402 should be reverted and fixed with something as: // Freetype version 2.13.3 and later uses unsigned char for tags #if (FREETYPE_MAJOR > 2) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR > 13) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 13 && FREETYPE_PATCH >= 3) unsigned char* tags; #else char* tags; #endif
If agg is linked with a previous version of FreeType there is now a problem. r402 should be reverted and fixed with something as: ~~~ // Freetype version 2.13.3 and later uses unsigned char for tags if (FREETYPE_MAJOR > 2) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR > 13) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 13 && FREETYPE_PATCH >= 3) unsigned char* tags; else char* tags; endif
This can be closed. Thank you
Thank you very much for your help. Now I understand the empty folders behaviour. And thank you for pointing me to the problem. I will review my code.
Project webpage doesn't work
Release of LenMus Phonascus version 6.0.0