xbmc/xbmc — pull request #1699 by Montellese (2012-10-30 14:21:40+00:00)
Title: videodb: translate filenames/paths from to not URL encode -_.!()

This fixes the issue described in http://trac.xbmc.org/ticket/13433 which have been caused by https://github.com/xbmc/xbmc/commit/982f4e258f0324b6716ab35de1de9cdfc233e8bb which changed our URL encoding logic to no longer URL encode -_.!(). This results in xbmc considering files with these special characters somewhere in the file name as new files because the file path we have stored in the database still has those characters in URL encoded form.
These commits go through the "files" table in the video database and updates them to follow the new URL encoding logic. I also added a unit test to make sure the new method URIUtils::UpdateUrlEncoding() works properly.

AFAIK this can only happen to paths stored in the "files" table and not in the "path" table but feel free to prove me wrong. I'm also not sure if this also is an issue in the music database.
I also don't know if we support rar:// and zip:// archives (which are basically the paths affected by this) in the music library or not. If so the same update logic has to be added to CMusicDatabase.