chiark / gitweb /
Convert track names and input lines to NFC. This is a database format
[disorder] / server / rescan.c
index 890e3fe..b9be72d 100644 (file)
@@ -50,6 +50,7 @@
 #include "trackdb.h"
 #include "trackdb-int.h"
 #include "trackname.h"
+#include "unicode.h"
 
 static DB_TXN *global_tid;
 
@@ -151,6 +152,11 @@ static void rescan_collection(const struct collection *c) {
       error(0, "cannot convert track path to UTF-8: %s", path);
       continue;
     }
+    /* We use NFC track names */
+    if(!(track = utf8_compose_canon(track, strlen(track), 0))) {
+      error(0, "cannot convert track path to NFC: %s", path);
+      continue;
+    }
     D(("track %s", track));
     /* only tracks with a known player are admitted */
     for(n = 0; (n < config->player.n