• Status Unconfirmed
  • Percent Complete
  • Task Type Patches
  • Category Playlists
  • Assigned To No-one
  • Operating System Another
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by agwells - 2010-06-09
Last edited by funman - 2010-06-19

FS#11388 - Bookmark file doesn't work for a directory with a semicolon in its name

Steps to reproduce:

1. Create a directory: /AUDIO;BOOKS
2. Place a file in it: /AUDIO;BOOKS/file.mp3
3. Start playing the file, and then create a bookmark
4. Do “List bookmarks” for the file
5. The bookmark menu lists something like this:

0:02, 2, Shuffle

The problem seems to be that .bmark files use semicolons to separate the fields of information. If there’s a semicolon in the path, it thinks that it indicates the end of the path and the beginning of the filename.

We need to replace ';' by another character forbidden in FAT32, but that would break compatibility with older bookmarks

(some?) Forbidden characters: / \ * " ? : | < >

Replace ';' by '|' (untested)

Will obviously break compatibility with existing bookmarks

Why not use an unprintable character like \t?

i believe '|' is more readable but that should work too provided \t is forbidden on FAT32

looks like it is, i can create this filename on ext3 but not on fat32 from linux

"|" is invalid (it is checked for in fat.c, search for the invalid_chars array). To keep old bookmarks working, one could check if the bookmark contains any "|", and if so use the new separator, otherwise use the old. Hm, I think I tried that once; don't remember why I didn't commit it though…

IMO it's simpler to break bookmarks, we can add a note about it in the release notes.

Note that we also broke themes since last release.


Available keyboard shortcuts


Task Details

Task Editing