I'd think that is would even be the final solution, not a workaround. We can never know what filesystem we are really on (even if we knew, we do not know all the limit or all exotic systems).
We must just try it. On any system, if we detect the new name only changes in case, do the renaming dance comment 131 and comment 7 proposed. On on the high level TB does not allow 2 folders to exist if they only differ in case (in CheckIfFolderExists). So this dance can be already done in nsLocalMailFolder.cpp, I don't think we need to code it in all the backends (mbox/maildir).
I'd think that is would even be the final solution, not a workaround. We can never know what filesystem we are really on (even if we knew, we do not know all the limit or all exotic systems).
We must just try it. On any system, if we detect the new name only changes in case, do the renaming dance comment 131 and comment 7 proposed. On on the high level TB does not allow 2 folders to exist if they only differ in case (in CheckIfFolderEx ists). So this dance can be already done in nsLocalMailFold er.cpp, I don't think we need to code it in all the backends (mbox/maildir).