Better handling of case-only renaming under WINE

Mp3tag works very well for me under WINE, but I often get stung by files not being renamed when only the case changes when running Tag -> Filename etc.

Would it be possible to implement a change to the renaming logic along the lines of:

if lower(old_name) != lower(new_name):
  move_file(old_name, new_name)
else:
  move_file(old_name, temp_name)
  move_file(temp_name, new_name)

?

This should be safe across case-sensitive and case-insensitive file systems.

Earlier topics:

If you have a standardized naming pattern then you could create an action that renames the file in 2 steps_

  1. Format value for _FILENAME, Format string: %_filename%_
  2. Format value for _FILENAME, Format string: your naming pattern

Thanks, I'll try out an action. Right now I just stick some dummy char at the end of my format string, do the rename, remove the dummy char and do the rename again - would be nice if the product handled this case automatically so the Tag -> filename button works out of the box.

Or that the emulator would adopt the case and write it accurately to the filename ...

Yes, but I appreciate why WINE has to do it like this, sitting in userspace and not caring about filesystem specifics. Windows gets to let the NTFS driver handle it.

Isn’t that the same issue in Windows proper as well? Often when I rename something in Windows, if there are only case changes it will not do anything.

Windows Explorer and move and ren via the command prompt work properly with case-only filename changes with Windows 11 25H2, but this definitely wasn't always the case. Mp3tag also works correctly under Windows.